Conversation
Add 10 new reduction rules connecting existing problem models: Tier 1a (simple): - Partition → BinPacking (#396): capacity=S/2, identity extraction - ExactCoverBy3Sets → MaximumSetPacking (#823): identity transformation - NAESatisfiability → MaxCut (#821): literal-pair edges + variable edges ThreePartition scheduling (5 rules): - ThreePartition → ResourceConstrainedScheduling (#477): 3 processors, resource=size - ThreePartition → SequencingWithReleaseTimesAndDeadlines (#469): filler-task slots - ThreePartition → SequencingToMinimizeWeightedTardiness (#473): filler-task slots - ThreePartition → FlowShopScheduling (#482): 3-machine separators - ThreePartition → JobShopScheduling (#485): 2-processor separators ILP/graph: - ILP/i32 → ILP/bool (#769): FBBT + truncated binary encoding - MaxCut → MinimumCutIntoBoundedSets (#849): complement graph bisection Also adds num_literal_pairs() getter to NAESatisfiability model and updates dominated-rules allow-list and path parity tests. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Codecov Report❌ Patch coverage is Additional details and impacted files@@ Coverage Diff @@
## main #972 +/- ##
==========================================
+ Coverage 98.01% 98.03% +0.02%
==========================================
Files 764 784 +20
Lines 80775 82310 +1535
==========================================
+ Hits 79169 80695 +1526
- Misses 1606 1615 +9 ☔ View full report in Codecov by Sentry. 🚀 New features to boost your workflow:
|
Agentic Review Report
|
- Register all 9 unregistered rule modules in rules/mod.rs (were dead code) - Wire 9 canonical rule example specs in canonical_rule_example_specs() - Add ExactCoverBy3Sets -> ILP to dominated-rules allow-list - Rename misleading test_..._infeasible to test_..._two_triples - Fix unused variable warning in JobShopScheduling example builder Test count: 4258 -> 4312 (54 previously-dead tests now compiled and passing) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
The new reduction rules (especially MaxCut -> MinCutBounded) created an alternative 3-step path to QUBO via complete graph construction, producing O(n^4) QUBO variables. MinimizeSteps tied at 3 steps and the tie-breaker selected this expensive path. Using MinimizeStepsThenOverhead with actual problem size (Petersen: 10v, 15e) ensures the compact SpinGlass path is chosen. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com>
Agentic Review Report (Updated)
Structural CheckStructural CompletenessAll 10 rules pass structural checks. The
Build Status
Semantic Review (naesatisfiability_maxcut)
Issue Compliance
Quality CheckDesign Principles
IssuesImportant:
Minor: Agentic Feature TestsNAESatisfiability → MaxCut Test Results
Minor Finding: Duplicate Edges in NAESatisfiability → MaxCutThe reduction can produce parallel edges when the same literal pair appears in multiple clauses. The reduction still produces correct results but violates the SimpleGraph invariant. Fixes Applied (post-review)
Generated by review-pipeline |
|
Follow-up items (recorded during final review):
|
Summary
Adds 10 new reduction rules from the #770 tiered implementation priority list, connecting existing problem models:
Tier 1a — Simple (3 rules):
ThreePartition scheduling (5 rules):
ILP/graph (2 rules):
Additional changes:
num_literal_pairs()getter to NAESatisfiability modelFixes #396
Fixes #469
Fixes #473
Fixes #477
Fixes #482
Fixes #485
Fixes #769
Fixes #821
Fixes #823
Fixes #849
Test plan
make checkpasses (fmt + clippy + all tests)🤖 Generated with Claude Code