Repository navigation
CC engine: MRV branching and seed-anchored reversed-BFS row order (GH-183, opt-in; do not merge before PI says merge) - #204
Merged
Conversation
…er) and -cc-tbbase=desc|asc, opt-in
The internal row index of each half search drives the packing scan order and the
mrv tie-break. bfs = BFS over the Tanner graph from the rows of the first seed,
restarted for unreached rows, then reversed; a row relabeling, so every verdict is
unchanged (proof in MODIFICATIONS.md). Default index: byte-identical output.
Tests: make test-cc Part R (64 rule subsets x {-, overlap, overlap+tiebreak} x 4
seeds, roworder bfs and tbbase asc vs brute force; rows-used check), driver configs
in Parts B and H, mutants 19 (a row dropped) and 20 (no BFS restart); flag checks.
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…and Tier 1-4 seed panel Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This was referenced Oct 29, 2026
…s 1-3 (9/9 runs reproduce) BB_756 >= 32, BB_864 >= 32, TN_496 >= 24 reproduced by every relabeled seed (28800 s, every level EMPTY). Stems unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
guluchen
pushed a commit
that referenced
this pull request
Oct 30, 2026
…unds PI decision 2026-10-31. Same matrices (git mv of Hx/Hz/Gx/Gz; only the Gx/Gz header comment changes). Upper bounds unchanged. TN_360_4_17to24 -> TN_360_4_23to24 (GH-157) TN_396_4_17to26 -> TN_396_4_23to26 (GH-157) TN_504_2_17to34 -> TN_504_2_24to34 (GH-157) TN_648_10_9to32 -> TN_648_10_22to32 (GH-157) BB_1080_4_30to48 -> BB_1080_4_32to48 (GH-162, reproduced by GH-183) BB_756_16_30to34 -> BB_756_16_32to34 (GH-183) BB_864_4_30to40 -> BB_864_4_32to40 (GH-183) TN_496_2_23to30 -> TN_496_2_27to30 (GH-181) Lower bounds: DistQLDPC's optional CC engine with opt-in rules that are not on main (charge, PR #161; tiebreak with mrv / -cc-roworder=bfs, PRs #180 / #204; sparse,sparseov,sparsemrv, PR #203), each reproduced with a different search order or binary of the same engine (not an independent second method). Updated: data/matrices/README.md (tier5 list, rename history, open items), NOTICE, README naming example, name columns of optimization/baselines/SERVER.md and main_server_reference.json. The upper-bound witnesses for these eight stems are copied under the new stems to optimization/experiments/GH-146/witnesses/renamed-2026-10-31/ (VERIFY.txt: 8/8 VALID). Historical experiment records are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
guluchen
pushed a commit
that referenced
this pull request
Oct 30, 2026
…unds PI decision 2026-10-31. Same matrices (git mv of Hx/Hz/Gx/Gz; only the Gx/Gz header comment changes). Upper bounds unchanged. TN_360_4_17to24 -> TN_360_4_23to24 (GH-157) TN_396_4_17to26 -> TN_396_4_23to26 (GH-157) TN_504_2_17to34 -> TN_504_2_24to34 (GH-157) TN_648_10_9to32 -> TN_648_10_22to32 (GH-157) BB_1080_4_30to48 -> BB_1080_4_32to48 (GH-162, reproduced by GH-183) BB_756_16_30to34 -> BB_756_16_32to34 (GH-183) BB_864_4_30to40 -> BB_864_4_32to40 (GH-183) TN_496_2_23to30 -> TN_496_2_27to30 (GH-181) Lower bounds: DistQLDPC's optional CC engine with rules that were opt-in when the bounds were found (charge, default on main since PR #161; tiebreak with mrv / -cc-roworder=bfs, PRs #180 / #204, and sparse,sparseov,sparsemrv, PR #203, not on main), each reproduced with a different search order or binary of the same engine (not an independent second method). Updated: data/matrices/README.md (tier5 list, rename history, open items), NOTICE, README naming example, name columns of optimization/baselines/SERVER.md and main_server_reference.json. The upper-bound witnesses for these eight stems are copied under the new stems to optimization/experiments/GH-146/witnesses/renamed-2026-10-31/ (VERIFY.txt: 8/8 VALID). Historical experiment records are unchanged. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
…H-183 Conflicts resolved by keeping both sides: - HalfSearch takes the GH-183 row order / tbbase arguments; the driver also passes the GH-157 charge settings. DriverOptions keeps both field sets. - -cc-mutant accepts 0..15, 17..20; header mutant list and MODIFICATIONS file table merged; cc_half.h doc keeps the row-order and charge notes. - tests/test_cc_engine.cc: ladder_ok takes the GH-157 arguments first, then the GH-183 ones (Part R calls updated); Part B Cfg has lbminr, lbgap, ro, asc; the bfs/asc driver configs that stand for the candidate use the new default rules (with charge) + tiebreak; new "charge-mrv-bfs-minr1"; Part R runs charge on seeds 1 and 3. - tests/test_cc_flags.sh: default rules + tiebreak,mrv with bfs accepted. Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
guluchen
changed the base branch from
experiment/gh-162-overlap-tiebreak
to
main
October 30, 2026 18:10
Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Experiment record for #183 (hub #15). Stacked on #162 / PR #180 (
tiebreak, not merged). Do not merge before the PI says merge.What changed
-cc-roworder=index|bfs(defaultindex, byte-identical to the current output).bfsrenumbers the rows of H inside each half search. It runs a BFS over the Tanner graph from the rows of the first seed qubit, restarts it from the lowest unreached row until every row is reached, and then reverses the order.mrvtie-break.-cc-seedrow shuffle.-cc-tbbase=desc|asc(defaultdesc): the base order of the tiebreak rule's per-seed qubit orders.mrvcomposed withoverlap,tiebreak. The token already existed. cc_half.h (2) and every rule's argument, including tiebreak's (A)-(C), keep an arbitrary fixed target reachable whichever odd row is branched on, somrvcomposes soundly.Validation (Tier 0, PASS)
make test-cc(default sizes): CC_ENGINE_TESTS PASS.-vlogs vs [Mac agent] CC engine: orbit-compatible even-weight overlap tie-break #162 97c8629 are identical in 12 configurations (MaxSAT -no-card / -card-mto; CC default, -ub-search=off, -cc-stats, -cc-aut=off, tiebreak, tiebreak+mrv; defaults given explicitly). The one exception is a known timing-dependent ub-pre line (BB_108 -card-mto), which also differs between two base runs.make test-cc-flags: PASS.Tier 1-4 seed panel
Setup: yfclab2, 5 seeds, pinned cores 29-32 and 34-43, 4 GB cap. Arms:
excl,pack,orbf,parity,leaf,overlap,tiebreak;mrv;-cc-roworder=bfs;-cc-tbbase=asc.Geomean of median wall ratios (max cell):
mrv.Tier 5 (6 h, default seed)
Candidate arms: tbmrvbfs, and tbmrvbfsa on the BB codes. Cores 29-32, 34-39, 41-43; 28, 33 and 40 were taken by other users at the start.
Reference arms main and tb: GH-162's Tier 5 runs (same server, 2026-10-29); TN_252 and TN_288 get main and tb arms in this run.
Tables:
optimization/experiments/GH-183/S1/tier5_table.md.Equal-level nodes and time vs tb (main in parentheses):
Watch items: LP and weight-9 TN codes
On the Tier 5 LP codes and on most row-weight-9 TN codes, the change is slower. LP and TN figures are back-to-back runs on one quiet pinned core (core 40):
S2/lp_arms_core40.txt,S2/tn_arms_core40.txt.Deepest common level, time vs tb:
Verdict and recommendation
-cc-roworder=auto. At the first level that takes 1 s or more, re-run it with the other configuration (tb vs tb+mrv+bfs), aborting at the first run's time through the existing poll hook, and keep the faster one for that half. Every level is an independent exact search, so switching between levels is sound. The probe costs at most one extra level.-cc-seedrelabelled runs, before any stem change.Cross-check (2026-10-30) of the PLAUSIBLE lower bounds: REPRODUCED (9/9 runs)
Setup:
-cc-rules=excl,pack,orbf,parity,leaf,overlap,tiebreak,mrv -cc-roworder=bfs.-seed=1..3, which give a different qubit and row order and different orbit representatives.optimization/experiments/GH-183/S3_xcheck/(commit a8e4532).Scientific semantics changed: no (opt-in flags; default output byte-identical).
PI action required: yes (adoption decision; Tier 1 process-floor judgement; family-dependent effect).
🤖 Generated with Claude Code