Repository navigation
Conversation
isPANN
added this pull request to stack #1181
September 28, 2026 06:05
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## fix/bounded-ilp-variants #1182 +/- ##
==========================================================
Coverage 96.75% 96.76%
==========================================================
Files 1072 1072
Lines 140481 140656 +175
==========================================================
+ Hits 135928 136103 +175
Misses 4553 4553 ☔ View full report in Codecov by Harness. 🚀 New features to boost your workflow:
|
isPANN
added a commit
that referenced
this pull request
Sep 29, 2026
isPANN
removed this pull request from stack #1181
September 29, 2026 12:24
Collaborator
Author
|
Merged to #1174. |
GiggleLiu
added a commit
that referenced
this pull request
Oct 3, 2026
* Make derivable reduction parameters exact * Check every field in exact reduction transforms * Verify exact reduction parameters on randomized instances * Check exact and upper-bound reduction parameters * Document and simplify parameter formula validation * Improve parameter prediction contracts and bound integer ILP reductions * Derive reduction parameter bounds from constructed targets Correct exactness claims, count sparse coefficients by construction block, reject negative flow capacities, and verify metadata using existing behavior inputs and real executors. * Consolidate bounded ILP and parameter prediction stack Squash the combined changes from PRs #1180, #1182, #1183, #1184, and #1185 into #1174. Preserve the complete stack-tip tree so subsequent corrections can be maintained on one branch. * Correct ILP parameter bounds and simplify reduction code * Calibrate parity and universe-size reduction bounds Derive upper bounds from conditional even padding and the set-packing endpoint universe. Preserve the exact edge-to-set count and verify the registered promises in existing parity and isolated-vertex tests. * Remove invalid reduction catalog edges * Add direct binary ILP pipelines for exact-one SAT and graph kernels * Preserve scheduling semantics with compact ILP constructions * Simplify scheduling solution extraction * Tighten ILP nonzero bounds using construction counts * Compact exact reductions and register missing solver pipelines Replace oversized formulations with compact constructions for partition, register, matrix, graph, and ordering problems. Add direct bounded ILP pipelines and reuse exact customized subset-sum and clique-cover solvers. Preserve signed weights and costs, avoid artificial partition-bound overflow, and align overhead contracts, rule targets, tests, and proofs with the resulting constructions. Validated with make check, make paper, independent reduction audits, and CLI solver and extraction round trips. * Remove redundant reduction parameters and derive bounds from model inputs * Fix exact verification bottlenecks in reduction targets * Simplify reduction results and exact solver bookkeeping * fix: bound solver precomputation by small witness budgets * fix: remove needless borrow flagged by current CI clippy * fix: cap solver preprocessing and handle large union chains --------- Co-authored-by: GiggleLiu <cacate0129@gmail.com>
GiggleLiu
added a commit
that referenced
this pull request
Oct 3, 2026
…1190) * Make derivable reduction parameters exact * Check every field in exact reduction transforms * Verify exact reduction parameters on randomized instances * Check exact and upper-bound reduction parameters * Document and simplify parameter formula validation * Improve parameter prediction contracts and bound integer ILP reductions * Derive reduction parameter bounds from constructed targets Correct exactness claims, count sparse coefficients by construction block, reject negative flow capacities, and verify metadata using existing behavior inputs and real executors. * Consolidate bounded ILP and parameter prediction stack Squash the combined changes from PRs #1180, #1182, #1183, #1184, and #1185 into #1174. Preserve the complete stack-tip tree so subsequent corrections can be maintained on one branch. * Correct ILP parameter bounds and simplify reduction code * Calibrate parity and universe-size reduction bounds Derive upper bounds from conditional even padding and the set-packing endpoint universe. Preserve the exact edge-to-set count and verify the registered promises in existing parity and isolated-vertex tests. * Remove invalid reduction catalog edges * Add direct binary ILP pipelines for exact-one SAT and graph kernels * Preserve scheduling semantics with compact ILP constructions * Simplify scheduling solution extraction * Tighten ILP nonzero bounds using construction counts * Compact exact reductions and register missing solver pipelines Replace oversized formulations with compact constructions for partition, register, matrix, graph, and ordering problems. Add direct bounded ILP pipelines and reuse exact customized subset-sum and clique-cover solvers. Preserve signed weights and costs, avoid artificial partition-bound overflow, and align overhead contracts, rule targets, tests, and proofs with the resulting constructions. Validated with make check, make paper, independent reduction audits, and CLI solver and extraction round trips. * Remove redundant reduction parameters and derive bounds from model inputs * Fix exact verification bottlenecks in reduction targets * Simplify reduction results and exact solver bookkeeping * Tighten construction overhead bounds and expose required source statistics * Use lattice geometry and cached rectangle incidence to tighten remaining bounds * Sum individual coefficient width bounds for lattice encodings * Reuse constructed parameters in overhead count tests * fix: bound solver precomputation by small witness budgets * fix: remove needless borrow flagged by current CI clippy * fix: cap solver preprocessing and handle large union chains --------- Co-authored-by: GiggleLiu <cacate0129@gmail.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.
Superseded by #1174. This PR’s changes were included in the combined squash commit
8bdddd45onfix/exact-reduction-parameters. Continue review and fixes in #1174. The original description below is retained for reference.Motivation
Stacked on #1180 (base branch:
fix/bounded-ilp-variants). That PR makes bounded integer ILP encoding explicit, but four flow reductions still cannot predict ILP numeric magnitude and therefore cannot predict the size of their binary ILP and QUBO targets.This PR restores those predictions using one intrinsic statistic per flow model and fixes two domain/schema defects found during the audit.
Changes
max_capacity_bitsto IntegralFlowBundles, IntegralFlowWithMultipliers, UndirectedFlowLowerBounds, and UndirectedTwoCommodityIntegralFlow. It measures existing capacities (bundle capacities for IntegralFlowBundles), with a minimum of one; constructors take no additional input.min(multiplier, total_capacity + 1), with saturating arithmetic. Above total capacity, positive integral inflow would require impossible outflow, so the replacement preserves feasibility.max_constraint_magnitude_bits <= max_capacity_bits + num_arcs + 1(ornum_edges + 1) in each flow-to-bounded-ILP rule. Every RHS uses only source parameters.2, and from Partition with the upper boundmax_numeric_magnitude_bits + num_elements.Three flow models previously had no capacity-scale parameter. Multiplier flow already has raw
max_capacity, but capacity bits allow the incoming Partition chain to compose without variable-exponent support. The raw capacity field remains available on concrete instances and in the model's complexity expression; its symbolic prediction from Partition remains explicitly unavailable. Downstream ILP size predictions do not depend on it.API and validation changes
0 <= lower <= capacityconsistently through the shared constructorrequirement, causing a panic when negativerequirementfrom the canonical parameter schema; preserves the signed construction field, serialization, and gettermax_capacity_bitsNo new variants or model-level inference mechanisms are introduced.
Verified behavior
(0,1)and(2,3), capacities[1,10], lower bounds[-5,0], and demand5from0to1, the base branch reports feasible through source brute force but infeasible through ILP. The new constructor rejects this invalid input.-1previously panicked on conversion to an unsigned parameter. It now succeeds and reports capacity bits; the signed requirement remains instance data.i64::MAXremain infeasible after solving and recovery.Validation
Regression tests were run failing before implementation, including the validation defect, negative-parameter panic, coefficient normalization, and missing composed predictions.
cargo test --features example-db --workspace -- --include-ignored: 6,893 passed.cargo fmt --all --check: passed.cargo clippy --workspace --all-targets --all-features -- -D warnings: passed.make paper: passed.Stack refresh
Merged the updated parent #1180, carrying the construction-derived bounds and validation fixes from #1174 through the stack. Preserved this PR's bounded ILP types, numeric-magnitude fields, and algorithms; no instance fixtures were added. The PR remains based on its immediate parent.
Validation of the updated head:
make checkpassed (formatting, all-target/all-feature Clippy, and workspace tests including ignored tests). GitHub CI is restricted to PRs targetingmainordevelop, so these stack branches were checked locally.