solver: break board dihedral symmetry
Constrain the unique unit square to a closed D4 fundamental region once its placement is known. This preserves one representative of every board-orientation orbit without assigning identities to repeated squares. Keep a symmetry-disabled benchmark path, document the proof and measurements, and cover generic, diagonal, midline, corner, and centre orbits. Tests: Release, Debug, ASan, and UBSan CTest (11 passed each) Refs: #3
This commit was merged in pull request #25.
This commit is contained in:
+5
-1
@@ -18,7 +18,11 @@ check smallest-width valley selection and deterministic tie-breaking, validate
|
||||
an order-8 result with descending candidates, and independently validate a
|
||||
direct order-9 search with ascending candidates. An
|
||||
exhaustive infeasible order also checks that all three policies visit the same
|
||||
search space. The direct order-9 test is deliberately separate from the
|
||||
search space. Focused D4 tests cover all eight rotations and reflections,
|
||||
even and odd midlines, diagonals, corners, and the odd-board centre. They
|
||||
independently validate order-8 solutions with symmetry enabled and disabled
|
||||
and check that only the enabled search records symmetry pruning. The direct
|
||||
order-9 test is deliberately separate from the
|
||||
public order-9 route, which uses even-predecessor construction. Orders 10 and
|
||||
11 are not routine tests because both public routes require the same long
|
||||
direct order-10 search; the route-boundary test still checks that order 11
|
||||
|
||||
Reference in New Issue
Block a user