The Math of EvE Online Probe Scanning

Copyright (c) 2017 Po Huit

This document is essentially a worklog for an ongoing project. I am attempting to understand the math and algorithms behind probe scanning in the MMO EvE Online, with the goal of identifying optimized probe patterns for everyday scanning tasks.

EvE is arguably the most unusual widely-played MMO, and its quirks are legendary. My favorite slogan for the game is currently “It’s Complicated.” Of all the many complexities in this decade-old client-server codebase, the rules implementing Probe Scanning are at a whole 'nother level. While the formulae behind combat-related activities, security status, EvE’s “spatial” mechanics and the like are quite…detailed, they are well-documented and well-understood by the EvE technical playerbase. The mechanics of Probe Scanning, on the other hand, are understood by the playerbase as a combination of ancient history, dark art, and scribbled formulas stretching back to the beginning of the game. Experiments are difficult to run and the formulas are difficult to validate.

My current plan is in two parts:

  1. I will develop a reasonably accurate, validated simulation of EvE’s current probe scanning process. Specifically, I will model the analysis portion of a single scan against a single target. The goal is to produce individually and statistically plausible hit probability, signal strength and position deviation as a function of the many parameters of the analysis: effective probe strength, probe position and scan radius, and target characteristics. The model needs to be good both for combat scanning for anomalies, ships, and deployables as well as for core scanning for anomalies.

  2. I will develop an optimization approach for probe placement, and show that it produces solutions at least as good as current standard placements.

Preliminaries: Advanced Probe Scanner Operation

I assume that you have done at least one probe scan. If not, please do so before returning to this document. Further, following a tutorial on probe scanning is a useful way to become familiar with the basics of operation. (Unfortunately, with the probe scanner having just been revamped in the current release, it may be difficult to find an up-to-date one.)

The features of the probe scanner that are somewhat unfamiliar to most long-time scanners are those related to individual probe placement and control. Here’s some things you’ll need to know:

One thing that requires a bit of investigation is how EvE treats the “center” of the probe formation. An obvious plan would be to simply make the center an arbitrary point in space: this would allow placing the individual probes asymetrically, for instance, all at a point 1 AU above the center. A bit of experimentation reveals that CCP seems to have decided (reasonably) that this would make for confusion when trying to place a custom formation. Thus, they place the center of the formation at the centroid of the probe positions. The centroid \(\bar{c}\) of a set of \(n\) equally-weighted points specified with Cartesian coordinates \(\bar{x_i}\) is simply the average of their positions:

\[ \bar{c} = \frac{\sum \bar{x_i}}{n} \]

Probe centers are in fact equally weighted in the EvE calculation, regardless of whether they have different scan radii. This is a choice, but since it is difficult to see whether larger radius probes should have more weight or less it is a sensible one. Ideally, the formation center would be calculated with a formula that takes scan strength over the entire formation volume into account (so that overlapping probes would be weighted properly), but this would be difficult and probably computationally expensive.

Simulating a Probe Scan

The general outlines of probe scanning in EvE are well understood. When the “Analyze” button is pushed on the probe scanner, the EvE server (presumably) calculates the effective strength of the probes and the effective difficulty of the target. Based on these variables and on the geometry of the probes and target, the server calculates and displays a scan strength percentage and a deviation of the target from its actual position, as well as a scan probability distribution model. The probability distribution is either nothing, a sphere, a ring, two points or a single point depending on whether zero, one, two, three, or four or more probes are successfully “triangulating” the target.

The details of probe scanning are obscure. There are two primary sources of information: historical reports posted on public forums by various players, and in-game experiments designed to develop and validate models.

Historical Reports

Here are the online resources on the probe scanning process I have found so far.

This is a superficially quite credible account of the probe strength calculation, marred by its extreme age. Some things are clearly outdated: for example, it appears that currently any scannable target hit by at least one probe will always appear in the results. The funny \xE2\x80\x93 sequence in the formulas is a miscoded Unicode en-dash, that is, a minus sign. This appears to be a copy of an old Goonwiki document. As I am no longer in Goons, I cannot verify whether it has ever been edited there. Recalling the state of their wiki, I am skeptical.

This is a superficially quite credible account of how multiple probes are combined. Again, it is elderly.

This is an empirical formula describing how to combine the strengths of multiple probes. It is quoted without attribution on the EVE University wiki link below.

This is mostly irrelevant, but contains two important points. There do not seem to be any reported changes to the actual probe scan mechanics. Also, while this is the patch that introduces probe formations, “These are not intended to be the absolute best possible formations, but rather a solid starting point for budding explorers.” Thus, there may be room for improvement. I personally doubt that CCP knows what the “best” formation is, which is what started this research.

These are a much newer and much more casual account of the calculations. Some details are just wrong, for example the idea that probe placement on top of the target guarantees a best scan. (I have experimentally verified that this is not the case for more than one probe.)

These pages give an alternate account of probe scanning, which may or may not be more accurate than the older ones. The formulas were reportedly derived empirically, and I am currently suspicious that the older ones are actually right.

This is a mostly qualititative account, although a scan deviation calculation is included.

Synthesis of Historical Research

I will assume for now that the detailed reports we have are mostly correct. We will start by enumerating the general things everyone seems to agree on about the probe scan process.

  1. The scan strength is a deterministic function of several variables, most of which are well understood. Specifically, it is the fractional product of several terms: that fraction is often expressed as a percentage. When the scan strength is 100% or greater, the signature has been “probed down” and can be warped to.

  2. Core and combat probe scanning are closely related. The same general formulas apply to both. There are factor-of-two modifications in some cases, but that’s about it. The specific formulas for signature strength are different for combat signatures (ships and structures) than for cosmic signatures.

  3. At least up to some threshold, more probes on a signature is better than fewer. At least up to some threshold, probes closer to a signature are better than farther away. Smaller probe radii that hit a signature are linearly better than larger. The probe strength is a well-understood function (described below) of attributes of the ship, probe scanner, probes and pilot.

Let us develop a couple of models based on the historical reports. We can then evaluate these models empirically on the Singularity server to try to validate them.

We will start with some well-accepted preliminaries.

\[ S_p = S_b \cdot (1 + 0.05 (A + A_r)) \cdot (1 + L) \cdot (1 + H) \cdot \Pi (1 + \rho_i F_i)) \]

where \(S_b\) is the probe base sensor strength, \(A\) and \(A_r\) are the pilot skill levels in Astrometrics and Astrometric Rangefinding, \(L\) is the launcher bonus, \(H\) is the hull bonus, \(F_i\) are the fitting bonuses for the various relevant fittings, and \(\rho_i\) is the “stacking penalty” for multiple fittings, with the fittings ordered best-to-worst. Specifically

\[ \rho_i = e^{-(3(i - 1)/8)^2} \]

All of this is a bit irrelevant, as the effective probe strength can be easily looked up either in-game (hover over a loaded probe) or in a fitting tool. We will use \(S_p\) as a fundamental value in what follows.

\[ R = R_b \cdot 2^{N_R - 1} \]

Combat probes have a base signal strength half that of core probes, but since they have a minimum radius that is twice that of core probes, their effect strength at a given probe radius is the same.

Single-Probe Scan Strength Model

At this point, the story gets more complicated. We are going to synthesize information from all the sources given previously to try to develop a model for the percent signal strength returned by a single-probe scan. In the next section, we will get on Singularity and validate this model.

Let us guess that the single-probe scan strength (\(S\), in units of percent with maximum 100) is given by roughly the Goonwiki formula

\[ S = S_p \cdot S_s \cdot \left (1 - 0.65 \left ( \frac{D}{R} \right )^{3/2} \right ) \]

This can be easily validated for a few cases on Singularity.

Experiment 1: Probe Strength As Function Of Distance

Run on Singularity 2017–09–08.

Purpose: Measure combat probe strength as a function of target distance to try to validate the above calculations.

Setup: A line of eight bookmarked Mobile Depots was set up in K5-JRD. (This was the second such line: the first was in a system that turned out to be cluttered with other Mobile Depots and had to be abandoned.)

Scanning was performed by a Helios positioned at the origin, fitted with four Scan Rangefinding Array II, a Gravity Capacitor II, and an Expanded Probe Launcher II with a single Sisters Combat Scanner probe. Pilot was at max scanning skills, except Covert Ops IV. In-game indicated 66 points of sensor strength, Pyfa 66.2.

Actual bookmark / Depot distances from the scan position:

    1: 0 AU
    2: 1.57 AU
    3: 3.5 AU
    4: 5.27 AU
    5: 7.5 AU
    6: 10.6 AU
    7: 15.33 AU
    8: 21.33 AU

(These distances were taken from the “old map” as mouseovers.)

Run 1.1:

Table indicates test point number, test point signature, test point distance from probe, then test point percent signal strength as function of probe radius.

                     32   64   16    8    16   16   8     4     2     4
    1  CFC  0       2.6  1.3  5.2  10.5  5.2  5.2  9.9  16.8  17.1  21.8
    2  ZLM  1.57    2.6  1.3  5.2  10.2  5.1  5.1  9.8  15.8        17.8
    3  WOD  3.5     2.6  1.3  5.0   8.8  4.8  5.0  8.7  10.0         9.8
    4  KVL  5.27    2.5  1.3  4.8   7.0  4.5  4.8  7.2
    5  MDI  7.5     2.5  1.3  4.3   4.6  4.0  4.3  4.9
    6  ETQ  10.6    2.4  1.2  3.6        3.3  3.7
    7  PWG  15.33   2.1  1.2  2.2             2.3
    8  COV  21.33   1.7  1.2

No contact was made with any target at 1 AU probe radius on repeated attempts.

It is difficult to say how the RNG works with this. Repeated runs with slightly different position produced different values: repeated runs with the same position (including zooming and reducing probe radius between runs) produced identical values.

Run 1.2:

Doubled up the single probe to see how that affected things. Expected effect was double strength. Slashed entries are 2/1 probes, achieved by recalling the second probe individually. The other columns were not recorded, but showed a similar pattern to radius 2: very small downward changes with 1 probe.

                     64   32   16    8     4      2         1         0.5
    1  CFC  0       2.2  3.8  6.5  11.6  22.4 38.0/37.0  48.7/48.1  55.4/55.2
    2  ZLM  1.57    1.4  2.8  5.4  10.3  18.1 21.6/21.6
    3  WOD  3.5     1.3  2.7  5.1   8.8   9.9
    4  KVL  5.27    1.3  2.6  4.8   7.0
    5  MDI  7.5     1.3  2.5  4.3   4.6
    6  ETQ  10.6    1.3  2.4  3.6
    7  PWG  15.33   1.2  2.1  2.2
    8  COV  21.33   1.2  1.7

It looks an awful lot like there is no interesting strength change with multiple probes in a single position. My current hypothesis is that the RNG is applied to each probe separately and the maximum is returned.

Note On Probe Scanner Rendering:

It should be noted that the projection being used for displaying the probe scanner seems pretty unstable / borked. A position that seems perfectly square in all dimensions zooms away from the center during zoom out. This is likely to be from numerical instability in the simulation, and it’s a real problem for scanning and for scan measurement.

Multi-Probe Scan Strength Model

The Elisa Fir Empirical Probe Multipliers claim to accurately describe the strength of multiple overlapping probes. The following Python code was used to calculate the probe multipliers using the given formula.

a = 2.27127967384994E-09
b = 1.12344005211905E-09
c = 13.4252377061721
d = -7.73088260552265
offset = 0.766607925235115

for X in range(1, 9):
    Y = a / (b + (X + c)**d) - offset
    print(X, Y)

This yields the following table:

1 0.25774312594204907
2 0.5130245854773758
3 0.7234132613571191
4 0.8824741410676007
5 0.9963325352118082
6 1.0754155621393995
7 1.1296251734489133
8 1.1666968137637062

An experiment should be run to try to validate / replicate this, but it is not obvious what experiment to run.

Experiment 2: Probe Strengths As Function Of Angles

Run on Singularity mid 2017–09.

Purpose: Measure combat probe strength as a function of angle to try to understand the trilateration model.

Setup: Multiple probes were set up at similar distance from the target, a Mobile Depot placed at a known bookmark. The number and relative angles of probes were varied and the resulting scan strengths recorded.

Scanning was performed by a Helios positioned off-grid, fitted with four Scan Rangefinding Array II, a Gravity Capacitor II, and an Expanded Probe Launcher II with Sisters Combat Scanner probes. Pilot was at max scanning skills, except Covert Ops IV. In-game indicated 66 points of sensor strength, Pyfa 66.2.

Run 2.1:

Two probes at same distance to target, with angle to probes varying along a circle. Measurements are relative. 1AU probe radius, approximately 0.2AU probe distance from target.

    0°      50%
    10°     54%
    22°     57%
    45°     65%
    90°     79%
    135°    93%
    180°    96%
    270°    79%

Strength seems to vary linearly with angle.

Future Work