Skip to content

Connected-Component Scan

Analysis tool — instantiates Spanning Connectivity Formation

Applies the functional-connection rule to the current substrate and computes which nodes actually form one component, exposing the true partition into disconnected islands.

Before anyone spends effort joining a network up, they need to know how many pieces it is actually in right now. Connected-Component Scan takes the substrate as it stands, applies an explicit rule for what counts as a working link, and computes the partition into connected components — how many islands there are, which is the largest, and which nodes sit alone. Its one defining move is that it is purely descriptive of the present state: it makes no prediction and passes no judgement, it just replaces an assumption ("we're basically connected") with the ground truth. The whole answer hinges on the connection definition it is handed — change what counts as a link and the island count changes with it — so the scan's real product is a baseline that everything downstream can trust.

Example

An ecology team is planning habitat protection for a woodland salamander and has been treating the region's 60 forest patches as one habitat. They run a Connected-Component Scan, defining two patches as connected only when they lie within the salamander's dispersal distance across land cover it can actually cross (not highways or bare fields). The result reframes the plan: the patches resolve into seven components, the largest holding barely 40% of them, with three patches fully isolated. What looked like one habitat is really an archipelago — and that baseline is what tells the team where a single new stepping-stone patch would merge two large blocks versus merely enlarge one.

How it works

The distinguishing point is the functional connection definition, not the graph algorithm. Two nodes get an edge only if they satisfy the rule that matters for the real function — within range, protocol-compatible, mutually routable — and the scan then partitions the graph into maximal connected sets (a standard disjoint-set / label-propagation pass[1]) and ranks them by size. Loosen the rule and phantom connectivity appears; tighten it and the network shatters into more islands than really exist. The scan is therefore run with the definition pinned to the actual function, and re-run whenever the substrate changes.

Tuning parameters

  • Connection rule strictness — how demanding the "counts as a link" test is. Tightening it (higher quality bar, shorter range) splits components apart; loosening it fuses them. This dial sets the entire result.
  • Directionality — whether a link must be mutual or one-way reachability is enough. Directed reachability yields strongly-connected components; undirected yields simple components.
  • Node granularity — how finely the substrate is decomposed into nodes. Coarser nodes hide internal breaks; finer nodes surface them at more cost.
  • Recompute cadence — one-shot snapshot versus periodic re-scan as links come and go.

When it helps, and when it misleads

Its strength is that it dissolves the illusion of connectivity cheaply and objectively: teams routinely discover the network is in far more pieces than they believed, and the largest component is smaller than assumed. It is the baseline every later step measures against.

It misleads through its inputs. A connection rule set too loose reports a single tidy component that does not function; set too tight, it manufactures fragmentation. Because one component so often dominates once a network is even modestly linked, a scan can also lull a team into thinking "mostly connected" is "connected" when a large minority is still stranded.[2] And a static snapshot goes stale the moment the substrate shifts. The discipline is to derive the connection rule from the real function first, read the distribution of component sizes rather than just the count, and re-scan rather than trust an old partition.

How it implements the components

Connected-Component Scan realizes the baseline-measurement side of the archetype — the components that describe the substrate as it is:

  • topology_map — it ingests or builds the node-and-edge map the rest of the analysis runs on.
  • functional_connection_definition — it applies the explicit rule for what counts as a working link; this rule is the crux that decides the answer.
  • connected_component_baseline — its output: the current partition into components and the identity and size of the largest.

It does not estimate where added links would tip the network into one span — that is Component-Merge Simulation — nor rank which links to build (Bridge-Edge Prioritization) nor track connectivity as it grows (Giant-Component Dashboard).

Notes

The scan shares its functional connection definition with the Reachability Test, but the two use it differently: the scan asks the descriptive question "how many components exist?", while the test asks the normative one "do the required endpoints pass?" Keeping them separate lets a team fix a wrong connection rule once and have both improve.

References

[1] The union-find (disjoint-set) data structure merges nodes into components in near-linear time and is the standard way connected components are computed; it is a real algorithm, used here only as the routine engine behind the scan.

[2] In random-graph models a single giant component tends to emerge and absorb most nodes once average degree passes one, which is why a scan should report the size distribution, not merely whether "a big component exists."