[Mac agent] CC engine: per-half probe between tiebreak and MRV + reversed-BFS row order (-cc-roworder=auto) #206
Copy link
Copy link
Open
Description
Hub: #15. Follow-up of #183 (PR #204, stacked on #162 / PR #180; none merged).
Hypothesis
#183 showed that MRV branching plus the reversed-BFS row order (-cc-rules=...,tiebreak,mrv -cc-roworder=bfs) depends on the code family and on the half:
- large BB codes and TN_496 search 2.5-3.7x faster at equal levels;
- the Tier 5 LP codes are 1.2-3x slower;
- most row-weight-9 TN codes are 1.2-1.8x slower, and on TN_180 the effect differs between the X and Z halves.
A per-half probe should keep the gains and remove the regressions.
Change
New value -cc-roworder=auto. Each searched half starts with configuration A (input row order, the given rules without mrv; with the tiebreak rules this is the #162 configuration).
At the first level of that half whose search takes at least -cc-probe=S seconds (default 1) and ends EMPTY:
- the same level is run again with configuration B (reversed-BFS row order, the given rules with
mrv); - the re-run is aborted through the existing poll hook once it uses A's search time;
- if B finishes first, B searches every later level of that half, otherwise A does.
The probe happens once per half and costs at most one extra level of the size that triggered it.
Soundness
- A and B are each exact level searches ([Mac agent] CC engine: orbit-compatible even-weight overlap tie-break #162, [Mac agent] CC engine: MRV branching and BFS row order on top of tiebreak #183 proofs), and the probe level is already refuted by A.
- Choosing which exact search runs the later levels cannot change any verdict. The level-w precondition holds for every later level whichever configuration refuted the earlier ones.
- An aborted probe changes no bound.
- A probe that disagrees with A (FOUND or INCONSISTENT after A's EMPTY) is a trap.
Plan
- Tests: driver oracle with forced switch / stay / time-based probes, with and without the finder; mutant: an aborted probe taken as a refuted level.
- Tier 0-4 on 5-seed medians, vs main and vs tb.
- Tier 5 (6 h): LP_1428 / 1768 / 2610 and the other LP codes, TN_180 / 216 / 252 / 288, BB_360 / 756 / 864 / 1080.
- yfclab2 cores 33-39 and 41-43.
Metadata
Metadata
Assignees
Labels
No labels
Activity
GH-206: probes at 0.1 s then 30x (-cc-probe-growth), no probe when th…
GH-206: v2 Tier 0 records and Tier 1-4 seed panel (v1 records archived)
GH-206: one probe per half by default (-cc-probe-growth=0); re-probes…
GH-206: first Tier 5 run (growth 30) records, single-probe derivation…
GH-206: Tier 5 confirmation with the final binary (one probe per half)
guluchen commentedon Oct 30, 2026
Result: PR #215, stacked on #204; do not merge before the PI says merge.
Merge GH-183 branch (with GH-162 and main c94d390, GH-157 charge defa…
Merge main (7d91569: GH-162 and GH-183 merges, stem renames #216) into …
Merge pull request #215 from guluchen/experiment/gh-206-cc-roworder-auto
guluchen commentedon Oct 30, 2026
Merged into main at 30ce62a as opt-in (PI-approved order 2026-10-31).
-cc-roworderstill defaults toindex, and the CC default rule set is unchanged (excl,pack,orbf,parity,leaf,overlap,charge).Retarget and conflicts
mainafter CC engine: MRV branching and seed-anchored reversed-BFS row order (GH-183, opt-in; do not merge before PI says merge) #204 merged.-cc-roworder=auto, both HalfSearch objects (A and B) now get the [Mac agent] CC engine: fractional-charge / edge-cover node lower bounds #157 charge settings (lb_minr,lb_gap,lb_raise,lb_auto).DriverOptionskeeps the [Mac agent] CC engine: fractional-charge / edge-cover node lower bounds #157 fields as well as the probe fields.cc_half.hkeeps theROWORDER_AUTOenum and the [Mac agent] CC engine: fractional-charge / edge-cover node lower bounds #157LbWork/lb_chargeAPI.-cc-mutantaccepts 0..15 and 17..21. Mutant 21 keeps its number.auto-switch,auto-time,auto-time-ubsearch,mutant21-switchandaut-auto-switch. The flag tests now also accept the default rules + tiebreak with-cc-roworder=auto.Checks (yfclab2, cores 5-23, 4 GB cap)
make test-ccPASS:make test-cc-flagsPASS (514 checks).-cc-roworder=auto, and-cc-rules=excl,pack,orbf,parity,leaf,overlap,charge,tiebreak -cc-roworder=auto.-vlogs are byte-identical to main 7d91569:-ub-search=off,-cc-statsand-cc-aut=off: 45/45.Merge GH-206 stack (GH-162, GH-183, GH-206 and main c94d390 with GH-157…
GH-181 merge: restore the closing fi of the GH-206 flag section
Merge main (30ce62a: GH-162, GH-183, GH-206 merges) into GH-181