Df/kf/σ Stability Boundary Near the Hard Regime#
experiments.md established a single hard-regime data point (Df=2.25, kf=0.95, σ=1.9) where success rates collapse to ~17–20%, and pairing_frustration.md diagnosed why single-shot attempts fail there. This page maps the Df/kf/σ/N boundary around that point on the then-current implementation (greedy first-fit pairing), forming the baseline against which the subsequent pairing fix is measured (boundary_sweep_v2.md). It covers territory (kf < 1.0, σ > 1.5) that earlier stability characterizations of this project did not reach.
Method#
configs/hard_regime_boundary_sweep.toml: Df ∈ [1.8, 2.5] step 0.1
(8), kf ∈ [0.8, 1.4] step 0.1 (7), σ ∈ {1.0, 1.5, 1.9} (3), N ∈ {64,
128, 256, 512, 1024} (5), 5 seeds per combination — 840 combinations,
4200 trials. Unlike pairing_frustration_probe.py’s single-shot
methodology, this sweep uses run_simulation’s standard internal retry
loop (up to 20 attempts per trial) via
benchmarks/stability_sweep.py — the same retry-inclusive metric
exposed to users via --max-attempts. Run on a local Dask cluster (16
cores); ~4200 trials in ~20–30 minutes wall clock.
Raw output:
benchmark_results/hard_regime_boundary_sweep/stability_sweeps/.
A caveat applies to the runtime columns in the raw data:
stability_sweep.py’s Dask path records each task’s submit_time when
all 4200 tasks are enqueued up front, not when a worker begins
executing it, so avg_runtime_s and median_runtime_s in the summary
are dominated by queue-wait for tasks scheduled late in a
4200-task/16-worker batch rather than by per-trial cost (a
directly-timed single trial takes ~1 s in the easy region, ~16 s at the
hardest tested corner; see
gpu_acceleration.md for the timing methodology).
Success-rate figures are unaffected; the timing columns in this sweep
are unreliable and were not corrected.
Results#
Boundary map at σ=1.9, success rate averaged over N=64..1024:
Df |
kf=0.8 |
kf=0.9 |
kf=1.0 |
kf=1.1 |
kf=1.2 |
kf=1.3 |
kf=1.4 |
|---|---|---|---|---|---|---|---|
1.8 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.9 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
2.0 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
0.92 |
2.1 |
1.00 |
1.00 |
1.00 |
1.00 |
0.80 |
0.32 |
0.08 |
2.2 |
1.00 |
0.92 |
0.52 |
0.16 |
0.00 |
0.00 |
0.00 |
2.3 |
0.56 |
0.12 |
0.04 |
0.00 |
0.04 |
0.00 |
0.00 |
2.4 |
0.16 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
2.5 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
0.00 |
The same table at σ=1.5 and σ=1.0 (monodisperse):
σ=1.5 |
kf=0.8 |
kf=0.9 |
kf=1.0 |
kf=1.1 |
kf=1.2 |
kf=1.3 |
kf=1.4 |
|---|---|---|---|---|---|---|---|
2.2 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
0.92 |
2.3 |
1.00 |
1.00 |
1.00 |
0.84 |
0.44 |
0.08 |
0.04 |
2.4 |
0.92 |
0.60 |
0.36 |
0.00 |
0.00 |
0.00 |
0.00 |
2.5 |
0.40 |
0.08 |
0.04 |
0.00 |
0.00 |
0.00 |
0.00 |
σ=1.0 |
kf=0.8 |
kf=0.9 |
kf=1.0 |
kf=1.1 |
kf=1.2 |
kf=1.3 |
kf=1.4 |
|---|---|---|---|---|---|---|---|
2.3 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
1.00 |
2.4 |
1.00 |
1.00 |
1.00 |
0.88 |
0.68 |
0.56 |
0.36 |
2.5 |
0.92 |
0.68 |
0.60 |
0.52 |
0.20 |
0.04 |
0.00 |
(Df ≤ 2.1 is at or near 100% across all tested kf at every σ and is omitted above; the full grid is in the raw JSON/CSV.)
Across the full grid, 3039/4200 trials (72.4%) succeeded. This figure is not meaningful on its own — the grid deliberately spans well past the boundary — but confirms the grid placement was neither uniformly easy nor uniformly hard.
Discussion#
The collapse boundary shifts to lower Df as polydispersity increases: safe up to Df≈2.3 monodisperse, Df≈2.2 at σ=1.5, and Df≈2.0 at σ=1.9. This direction is consistent with the field literature: a survey conducted alongside this sweep independently cites algorithmic collapse around Df 2.2–2.3 for polydisperse rigid CCA, and an absolute monodisperse ceiling of Df≈2.55 for size-symmetric merge strategies matching FracVAL’s design. Both figures agree with the direct measurements here: at σ=1.0, kf=0.8, Df=2.5 still succeeds 92% of the time, consistent with a ceiling near Df≈2.55.
The Df×kf interaction is sharp and directional: at every σ, lower kf survives further into high-Df territory. At σ=1.9, Df=2.2, kf=0.8 remains at 100% while kf=1.1 has dropped to 16% — a transition spanning a kf range of only 0.3.
The established hard regime sits close to the edge of this transition. At N=128 (matching the probe in pairing_frustration.md), Df=2.25/kf=0.95 is bracketed by:
Df |
kf |
success_rate (5 seeds, N=128, σ=1.9) |
|---|---|---|
2.2 |
0.9 |
1.00 (5/5) |
2.2 |
1.0 |
0.60 (3/5) |
2.3 |
0.9 |
0.00 (0/5) |
2.3 |
1.0 |
0.00 (0/5) |
A fully-successful and a fully-collapsed corner sit 0.05 apart in Df. The regime chosen in experiments.md (Df=2.25, kf=0.95) is thus a deliberately hard stress point on this transition, which is also why the pairing-frustration probe’s single-shot methodology measured only 2.5% success there: near the boundary, retry compounds a low per-attempt probability into a substantially higher eventual success rate, while the per-attempt probability itself is what the probe’s census explains.
N amplifies instability specifically at the boundary. Two representative near-boundary points:
Df |
kf |
N=64 |
N=128 |
N=256 |
N=512 |
N=1024 |
|---|---|---|---|---|---|---|
2.2 |
1.0 |
1.00 |
0.60 |
0.60 |
0.40 |
0.00 |
2.3 |
0.8 |
1.00 |
1.00 |
0.40 |
0.40 |
0.00 |
Points comfortably inside the safe region (e.g. Df=2.1, kf=1.0, σ=1.9) show no such degradation: 100% at every tested N from 64 to 1024. N does not independently cause failure; it sharpens whatever margin Df/kf/σ leaves.
Implications#
This sweep is the greedy-pairing baseline. The pairing-frustration diagnosis and the independent literature survey both identify CCA merge ordering — rather than search strategy, already ruled out in experiments.md — as the lever most likely to move this boundary. The backtracking pairing fix was subsequently benchmarked against this exact grid; boundary_sweep_v2.md quantifies the shift.