solver: add optional component-area pruning

Full-height skyline columns partition the remaining board. Add sound gcd and bounded subset-sum checks for the resulting component areas, with boundary-event and periodic benchmark schedules.

Keep the rules disabled by default because their small tree reductions do not recover their measured cost. Record the rejected default and scheduling evidence so it can be revisited only with new data.

Tests: Debug CTest (14 passed)

Tests: ASan+UBSan CTest (14 passed)

Refs: #13
This commit was merged in pull request #28.
This commit is contained in:
Codex instance
2026-07-31 08:40:39 +01:00
parent 220cec06a9
commit 39ff5cb340
6 changed files with 491 additions and 53 deletions
+1
View File
@@ -28,6 +28,7 @@ if(BUILD_TESTING)
add_test(NAME d4-symmetry COMMAND partridge_tests d4-symmetry)
add_test(NAME valley-capacity COMMAND partridge_tests valley-capacity)
add_test(NAME large-square COMMAND partridge_tests large-square)
add_test(NAME component-area COMMAND partridge_tests component-area)
find_package(Python3 COMPONENTS Interpreter)
if(Python3_Interpreter_FOUND)
add_test(NAME benchmark-format