research/tools/simulators/tsi/tsi-sim-pernode/configs/countable-vs-old-paired.yaml
Marcin Pawlowski c8a23fd1df
Report becomes the directory README; rebuild the contents block
The report is now reports/tsi/README.md, so browsing to reports/tsi/
lands on the report itself rather than on an index that points at it.
The old index carried nothing the report lacked except the note that
report-figures/ holds the figures of record (the simulator folder does
not commit its own), which is folded into §9; its section table is
superseded by the report's own contents block. The "[Index]" self-link
in the header is replaced by the simulator link the index used to carry.

The contents block was inconsistent: §2 listed subsection titles, §3 and
§6 listed bare numbers with no titles at all, and the appendices were
crammed onto one line while their subsections went unlisted. Rebuilt
from the document's actual headings so every entry has a real title,
top-level entries carry a one-line gloss, and subsections sit indented
under their parent. It now covers all 47 anchors, including B.1-B.4 and
C.1-C.2 which were previously absent.

scripts/build_html.py follows the rename (DOCS is a single document) and
still renders clean: 47 anchors, 0 broken internal links, 0 unrewritten
.md links, 37 images.

Also adds configs/countable-vs-old-paired.yaml — the paired, 20-replicate
version of the overload grid. §3.2a now rests on a paired design while
§3.2 still rests on 5 unpaired replicates, which is why its U=1 cells at
delta_max 16 and 32 sit unresolved at t ~ 0.5 against a replicate sd of
0.15. That sweep is running; the report is not yet updated from it.

Co-Authored-By: Claude Opus 5 (1M context) <noreply@anthropic.com>
2026-08-05 12:12:03 +02:00

37 lines
2.5 KiB
YAML

# PAIRED overload-grid comparison: countable vs unrestricted referencing across the full
# delay range, delta_max 4/8/16/32 (rho ~ 0.36 to 1.76).
#
# Supersedes countable-vs-old.yaml, which was 5 replicates with INDEPENDENT streams per arm.
# That design pays the between-run variance twice; at delta_max = 32 its replicate spread
# reaches sd 0.15, which left the U=1 cells unresolvable (t ~ 0.5) even though the U=2/U=4
# effects there are enormous (t = 6.5 and 41). See §3.2a for what pairing bought in the
# design band: a median 1.6x SE shrink and an exact-zero negative control.
#
# paired_streams gives a countable cell and its --old twin the SAME stake draw, peering graph
# and lottery outcomes, so the uncle rule is the only difference and each replicate is a
# matched pair. Replicates also go 5 -> 20. U=0 stays as the control: with no uncles and
# shared streams the two arms must be bit-identical, which is an identity check rather than
# a noise check.
#
# Run TWICE — default (countable) and with --old — same grid.
# Latency is in SLOTS (1 slot = 1 s).
n_nodes: [1000] # network size
stake_dist: [pareto] # heavy-tailed (realistic) stake distribution
topology: [blend] # Blend mixnet (the multi-slot fork regime)
degree: [6] # peering degree of the d-regular graph
link_latency_mean: [0.5] # natural geographic transport (sub-slot)
link_latency_dist: [geo] # real-world geographic band mixture
blend_hops: [3] # fixed hop count; delay is the swept knob
blend_delay_max: [4.0, 8.0, 16.0, 32.0] # max per-relay mixing delay (slots)
max_uncles: [0, 1, 2, 4] # U: 0 baseline, then the recovery levers
uncle_strategy: [oldest] # spec selection: oldest-first fill
init_dest: [common] # per-node initial D_est from agreement
replicates: 20 # 4x the unpaired grid, plus pairing
base: # per-run settings shared by every cell
k: 2160 # true security parameter
epochs: 20 # equilibrium within ~2 epochs; burn 50%
f: 0.03333333333333333 # slot activation coefficient (1/30)
genesis_d_factor: 0.5 # start near true stake (cheap epoch 0)
early_stop: true
paired_streams: true # common random numbers across the two arms