| Deg | Vertices |
|---|
Vertices are all binary strings of length n with exactly k zeros — there are C(n,k) of them. Two vertices are adjacent when a consecutive 3-cycle on positions (i, i+1, i+2) transforms one string into the other. There are two generator families:
Note: σᵢ⁻ = (σᵢ⁺)⁻¹, so each undirected edge corresponds to exactly one position i. An edge exists only when the triple is not all-0 or all-1 (constant triples are fixed points). G₃ is a multigraph — two nodes can share parallel edges at different positions.
Each undirected edge is labeled by the generator applied from the lower-indexed endpoint to the higher-indexed endpoint. For example, ◀2R on the edge {1101111, 1111011} means: going from 1101111 (lower index) → 1111011 uses σ₂⁻ (reverse at position 2). The label does not imply a directed edge — traversing in the opposite direction uses σ₂⁺.
Wrapped generator (position n−2, wrapping back to 0) is suffixed with w: e.g. ▶3wF.
Let A = 0k1n−k (canonical vertex), B with 1-based zero positions z₁<…<zₖ. Define dᵢ = zᵢ−i, I(B) = Σdᵢ, Δ(B) = |Σ(−1)i+1(dᵢ mod 2)|.
No closed-form formula is known for d(X,Y) between arbitrary vertices. The app uses BFS for exact distances and displays the two-sided bounds.
1 — By degree: color = number of incident edges (parallel edges each counted separately).
2 — d from A: BFS distance from canonical A. Green (d=0) → red (d=diam, at A*).
3 — d from A*: same gradient rooted at A*.
4 — d from clicked: live BFS from any node you click.
5 — Nₒ from A (heatmap): log-scale color of the shortest-path count Nₒ(A,·). Blue = 1 path → cyan → green → yellow → red = maximum.
Green ring = A Purple ring = A* Gold fill = BFS source Orange fill = BFS target Blue ring = d(X,Y) selected nodes
Red square nodes — see U′ Approximation below.
Color = 3-cycle position index i (10-color palette, consistent across all graphs). Solid stroke = forward generator σᵢ⁺. Dashed stroke = reverse generator σᵢ⁻. Parallel edges between the same node pair are fanned out with perpendicular offsets so they don't overlap visually.
Check Stretch (pin nodes) to enter stretch mode (cursor changes to a cell crosshair).
With Keep symmetric on, pinning a node simultaneously pins its reversal partner at the mirror position.
Instantly stops physics and zeros all velocities. A and A* receive leader-line callouts. Press ▶ Unfreeze to resume. Useful before Sort Vertices or d(X,Y) on large graphs.
Click the button, then click any node U as the BFS root. Nodes partition into layers Ld = {v : d(U,v) = d}.
Node radius auto-scales so nodes fit inside their band. Holography tooltips remain active in both sub-modes.
Click the button, then click two nodes (blue ring highlight) or type their binary labels. Press ↳ Compute.
Each binary string B maps to a lattice path in a k × (n−k) rectangle: 0 → step right, 1 → step up. Cells below the red path are shaded pink; their count equals I(B) = U (the Mann–Whitney U statistic).
The tooltip shows U=N (area). With Show I(B) formula, the per-term breakdown is shown. Use the Holo cell size slider (right panel) to enlarge diagrams — default is 16 px per cell.
Hover any node for its diagram, or use the checkboxes to show all / mismatch-only simultaneously.
The "naïve" approximation U′ = ⌈I(B)/2⌉ ignores the parity correction Δ(B). When U′ ≠ d(A,B), the node is drawn as a red square. The mismatch value is:
Enable Show mismatch only to display holography diagrams for mismatch nodes only — each diagram shows both U= and m= values. The mismatch box border turns red for easy identification.
Closed-form mismatch count for k = 3 and k = 4:
Enable Show Nₒ(A,·) table to display a sortable table in the right panel listing every vertex B with its distance d, area I(B), parity correction Δ, and shortest-path count Nₒ(A,B). Color swatches use the same log-scale heatmap as the Nₒ node coloring mode.
Two auto-computed badges indicate whether Nₒ(A,B) is determined solely by I(B) or by the pair (I,Δ) — useful for identifying potential closed-form structure.
At build time the app verifies d(A,B) = (I(B)+Δ(B))/2 for every vertex B and displays a green ✓ or red ⚠ pill. When |V| ≤ 1000 the diameter ⌈k(n−k)/2⌉ is also BFS-verified.