Repository navigation
Conversation
isPANN
added this pull request to stack #1181
September 28, 2026 06:27
Codecov Report✅ All modified and coverable lines are covered by tests. Additional details and impacted files@@ Coverage Diff @@
## fix/flow-ilp-overhead #1183 +/- ##
========================================================
Coverage ? 96.76%
========================================================
Files ? 1072
Lines ? 140769
Branches ? 0
========================================================
Hits ? 136216
Misses ? 4553
Partials ? 0 ☔ 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
This PR restores QUBO size predictions for
BiconnectivityAugmentationandStrongConnectivityAugmentation, including paths that start atHamiltonianCircuit. It adds one computed source parameter to each augmentation model and supplies the missing formulas on their incoming and outgoing reduction rules.What is currently missing?
The reduction graph should predict the size of a reduced problem from the source instance's parameters, before constructing intermediate problems. On the base branch, both augmentation →
ILP<bool>rules can predict the number of ILP variables and constraints, but leavemax_constraint_magnitude_bitsunavailable. As a result, the existing paths below have unavailable predictions for both QUBO variables and quadratic terms:The same gap affects paths starting directly at either augmentation model.
Why do weights and the budget affect target size?
Both reductions copy candidate weights and the budget into an ILP constraint of the form
sum(weight[j] * selected[j]) <= budget. The subsequent ILP → QUBO reduction encodes inequality slack using extra Boolean variables. The number of these variables depends on the magnitudes of the coefficients and right-hand sides, as well as the ILP's structural size. Its existing bound isN + M * (N + H), whereNis the ILP variable count,Mis its constraint count, andHis its maximum constraint magnitude in bits.Vertex, edge, and candidate counts do not describe those numeric magnitudes: the same graph and candidate set can carry different weights and budgets. The augmentation models therefore need a numeric source parameter to supply an input-dependent bound for
H. Measuring the constructed ILP would not provide a prediction from source parameters alone.Why one parameter, and why update the incoming rules?
A single intrinsic statistic,
max_numeric_magnitude_bits, covers every candidate weight and the budget. It is computed from existing input data. Separate weight and budget parameters are unnecessary because the outgoing rule only needs their maximum magnitude. This statistic is exactly the target ILP'smax_constraint_magnitude_bits, so the existing ILP → QUBO formulas can then compose.Adding the statistic only to the augmentation models would still leave paths starting at
HamiltonianCircuitincomplete. This PR also gives each incoming rule an explicit bound for that new target parameter:num_vertices + 1. Every formula remains local to its reduction and uses only that rule's source parameters.Stacked on #1182; the comparison base is
fix/flow-ilp-overhead.Changes
max_numeric_magnitude_bitsto both augmentation models: the smallesth >= 1bounding the magnitudes of every candidate weight and the budget strictly by2^h. Reuse the existing magnitude helper, including its handling ofi64::MIN.ILP.max_constraint_magnitude_bits = max_numeric_magnitude_bits. The budget row copies these values; all other coefficients, right-hand sides, and Boolean endpoints have magnitude at most one.max_numeric_magnitude_bits <= num_vertices + 1on both incoming HamiltonianCircuit rules. Their weights are 1 or 2 and budget is the source vertex count; small inputs produce fixed infeasible instances with budget zero.This adds one canonical parameter per model, with no new constructor inputs. The statistic includes the budget, avoiding both a separate budget parameter and normalization code. Reduction constructions, accepted signed biconnectivity inputs, variants, and witness mappings are unchanged. Every formula uses only its rule's source parameters.
Verified examples
Previously, both QUBO fields were unavailable on each direct augmentation → ILP → QUBO route. CLI checks now produce sound upper bounds and recover valid source witnesses:
Or(true)Or(true)The bounds deliberately remain coarse. Incomplete direct integer-coefficient ILP contracts decrease from 22 to 20; this is not a count of every possible graph path.
Validation
Three regression tests were observed failing before implementation and passing afterward:
Checks:
make paper: passed.Extreme-value tests verify metadata and ILP construction, not numerical solvability of every extreme instance by the backend.
Stack refresh
Merged the updated parent #1182, 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.