Skip to content

[Meta] Direct QUBO encodings: prioritized scheduling, sequencing, and related-model roadmap #1213

Open

Description

@isPANN

Problem and intended outcome

Many scheduling, sequencing and related assignment problems reach QUBO through ILP. Generic conversion introduces binary encodings, inequality slack and squared row penalties; in some cases it first linearizes a quadratic objective and then converts it back to QUBO. Add source-specific rules where they reduce actual logical variables/couplings or connect a currently disconnected model.

This is a prioritized tracking issue, not a claim that all listed formulations are verified or ready to implement. It contains all 47 model/variant candidates from the scheduling/sequencing and neighboring-model scan, plus a broader ILP-entry inventory. Split verified constructions into individual rule tasks/PRs and link them here; check for existing issues before creating children.

Priority order: identifiable auxiliary-variable savings and proof readiness first, then benefit to existing incoming chains, then conditional improvements and dedicated formulation research. Ordering is provisional until exact-variant path comparisons and measured target sizes are available. P1 is implementation priority, not an incident severity.

Baseline and how to measure improvement

Scan baseline: checkout commit 55823fbc894647fa83cfc70b7c60bca6bcba673e (2026-10-22). Recheck current main before implementation.

The current binary ILP → QUBO rule declares:

N_Q <= v + c*(v+h)
E_Q <= (v + c*(v+h))^2

Here v is the binary ILP variable count, c the constraint count and h the constraint-magnitude bit parameter. The often-quoted degree-d → degree-4d effect is a conservative composed-size bound under appropriate scaling assumptions, not a universal count of actual variables. Actual slack bits depend logarithmically on individual constraint ranges. QUBO objective degree remains two.

For every candidate, compare actual variables, nonzero couplings, coefficient magnitude/bit length, construction cost and composed parameter bounds against existing routes. Numeric time horizons must remain explicit: O(nT) is pseudopolynomial when T is binary encoded. Logical size alone does not establish physical annealer fit or speedup.

Notation below: n = tasks/items/vertices as appropriate; m = processors; k = groups; f/l = facilities/locations; S = total admissible start choices; A = available timetable assignments. Counts are proposed construction bounds pending full-domain proof, not measured benchmark results.

Existing incoming connections motivating scheduling coverage

  • OptimalLinearArrangement → weighted-completion sequencing.
  • Partition → multiprocessor scheduling, Decision, Decision.
  • ThreePartition → resource-constrained scheduling and release-time/deadline sequencing.
  • KSatisfiability → preemptive scheduling and timetable design.
  • ExactCoverBy3Sets → staff scheduling.

Most other scheduling models are not currently large incoming hubs. Avoid assuming that every new rule shortens a large subtree.

P1 — Implement and validate first

  • 1. SequencingToMinimizeWeightedCompletionTime → QUBO: Pairwise ordering, quadratic transitivity, linear precedence penalties and weighted-completion objective. Target: n(n−1)/2 bits and at most 3·C(n,3) couplings; removes completion-time and triangle-slack variables. Benefits the OptimalLinearArrangement chain.
  • 2. MinimumTardinessSequencing<One> → QUBO: Task-position assignment with linear position-dependent tardy-task costs and direct precedence-conflict penalties. Target: n² bits without separate tardiness indicators.
  • 3. SequencingWithinIntervals → QUBO: One-hot admissible starts and direct overlap penalties. Target: S bits, where S is the total number of admissible starts; removes one slack bit per current overlap constraint.
  • 4. TimetableDesign → QUBO: Available-assignment bits, squared exact work requirements and pairwise exclusivity penalties. Target: A bits, where A is num_available_assignments; removes exclusivity slack and serves an existing 3SAT incoming rule.
  • 5. MaximumLikelihoodRanking → QUBO: Pairwise ordering and quadratic transitivity with linear disagreement costs. Target: C(n,2) bits and O(n³) couplings; removes triangle-inequality slack.
  • 6. QuadraticAssignment → QUBO: Retain facility-location assignment bits and the original quadratic objective, with assignment penalties. Target: f·l bits; removes the current f(f−1)l² product-linearization variables.
  • 7. SumOfSquaresPartition → QUBO: Item-group assignment bits, one-hot penalties and squared group sums. Target: n·k bits; removes current n²k product variables.
  • 8. OptimalLinearArrangement<SimpleGraph> → QUBO: Vertex-position assignment and distance-weighted pair interactions. Target: n² bits; compare against the new weighted-completion sequencing route, especially for dense graphs.

P2 — High-value follow-ups; settle domains and path comparisons

  • 9. SchedulingToMinimizeWeightedCompletionTime → QUBO: Processor-assignment bits and pair interactions under fixed Smith order can use n·m bits on the positive domain. The current constructor accepts negative nonzero inputs despite its documentation: prove compatibility with actual evaluation or explicitly resolve the model domain before adopting this formulation.
  • 10. SchedulingWithIndividualDeadlines → QUBO: Use only deadline-valid task slots; encode precedence conflicts directly and processor capacities exactly. Measure both removed variables and added couplings.
  • 11. PrecedenceConstrainedScheduling → QUBO: Task-slot bits, forbidden precedence-pair penalties and capacity encoding. Eliminates precedence slack, but dense conflict couplings can offset savings.
  • 12. CyclicOrdering → QUBO: Pairwise total-order bits with transitivity penalties and squared orientation-count constraints for prescribed triples. Compare against the existing sparse rank formulation.
  • 13. GroupingBySwapping → QUBO: Symbol-block ordering bits with pairwise inversion costs and a budget threshold. Prove exact correspondence to minimum adjacent-swap count.
  • 14. MinimumFeedbackArcSet<i64> → QUBO: Total-order bits with backward-arc costs. Verify the concrete graph/weight domain, treatment of negative weights and extraction before claiming a full-domain rule.
  • 15. Partition → QUBO: Square the difference between the two subset totals; one bit per element. Compare against existing short routes before claiming asymptotic improvement.
  • 16. SubsetSum → QUBO: Square the selected-sum residual; one bit per element, with exact feasibility threshold and offset.
  • 17. ExactCoverBy3Sets → QUBO: Subset-selection bits and squared exact-cover equations; one bit per subset.
  • 18. ThreePartition → QUBO: Item-group assignments with exact cardinality and group-sum penalties. Equality constraints avoid capacity slack.
  • 19. ThreeDimensionalMatching → QUBO: Triple-selection bits, intersection-conflict penalties and exact cardinality requirements. Preserve the model's exact witness requirements.
  • 20. ExpectedRetrievalCost → QUBO: Record-sector assignment bits and direct quadratic latency costs; removes product linearization. Requires QUBO and a separate floating-point penalty/evaluation contract.
  • 21. BottleneckTravelingSalesman → QUBO: Tour-position bits and forbidden transitions for a fixed bottleneck bound. Identify the actual endpoint semantics; optimization needs bound encoding or a separate decision-search route.
  • 22. StackerCrane → QUBO: Required-arc order encoding with direct transition costs. Prove travel-cost preprocessing, connectivity and exact route reconstruction.
  • 23. ShortestCommonSuperstring → QUBO: String-order assignment with overlap costs after containment preprocessing. Prove preprocessing and reconstruction for empty, duplicate and contained strings.

P3 — Conditional savings; benchmark before committing to a formulation

  • 24. MinimumTardinessSequencing<i64> → QUBO: Time-indexed starts with linear tardy-task costs, or binary completion arithmetic and exact deadline indicators. Preserve signed inputs; avoid silently assuming unit or positive durations.
  • 25. SequencingToMinimizeTardyTaskWeight → QUBO: Time-indexed weighted late-task costs, or order/completion bits and exact late indicators. Signed weights require exact indicator semantics.
  • 26. SequencingToMinimizeWeightedTardiness → QUBO: Time-indexed weighted tardiness costs with a decision threshold, or binary completion/tardiness arithmetic. This model is feasibility with a bound, not an optimization endpoint.
  • 27. SequencingWithReleaseTimesAndDeadlines → QUBO: Admissible-start conflict encoding versus compact binary start times and disjunction gadgets. A time grid may be much larger than the current binary-time route.
  • 28. MultiprocessorScheduling → QUBO: Task-processor assignment and squared load equations with binary slack. Likely retains the generic route's actual variable count; a better metadata bound alone is not a physical size saving.
  • 29. ResourceConstrainedScheduling → QUBO: Task-slot assignment and exact processor/resource capacity penalties. General resource capacities still need slack or equivalent gadgets; compare against the current clamped-horizon construction.
  • 30. BinPacking<i64> → QUBO: Item-bin assignment, bin-use bits and capacity slack with a bin-use objective. Quantify savings against the existing assignment/capacity formulation.
  • 31. CapacityAssignment → QUBO: One-hot capacity choices, linear costs and delay-budget slack. Much of the existing encoding is already suitable for QUBO.
  • 32. DynamicStorageAllocation → QUBO: Admissible-address bits and direct conflicts for items overlapping in both lifetime and address range. Size depends on numeric memory capacity.
  • 33. FeasibleRegisterAssignment → QUBO: Register-choice bits and direct conflict penalties where the source model permits them. First verify all model-specific assignment restrictions.
  • 34. LongestCommonSubsequence → QUBO: Character-match choices and incompatibility penalties. Compare with the existing MIS route; match-tuple enumeration can grow rapidly.
  • 35. ShortestCommonSupersequence → QUBO: Symbol-position and embedding choices with direct order and compatibility penalties. Quantify which generic auxiliaries actually disappear.
  • 36. MinimumGraphBandwidth<SimpleGraph> → QUBO: Vertex-position assignment with forbidden distant edge placements for a fixed bandwidth bound. Optimization needs an exact bound encoding or decision-search route.
  • 37. Betweenness → QUBO: Pairwise ordering/transitivity plus a local betweenness penalty or gadget. Derive the exact local quadratic representation and auxiliary count.

P4 — Dedicated formulation research and new connectivity

  • 38. JobShopScheduling → QUBO: Compare time-indexed operation starts/conflicts with disjunctive order/binary timing. Currently no outgoing rule in the scanned checkout. A fixed-horizon decision formulation does not by itself implement the makespan optimization model.
  • 39. StaffScheduling → QUBO: Binary worker counts per schedule, coverage surplus and worker-budget slack. Currently no outgoing rule in the scanned checkout; schedule multiplicities are integers, not Boolean choices.
  • 40. OpenShopScheduling → QUBO: Operation-start choices, job/machine conflicts and exact makespan encoding. Cover optimization and the existing Decision wrapper separately.
  • 41. FlowShopScheduling → QUBO: Common job-permutation choices with timing or permutation-consistent time indexing. Preserve the same job order on all machines; ordinary job-shop constraints are insufficient.
  • 42. PreemptiveScheduling → QUBO: Activity bits, exact processing amounts, capacities, finish-before-start precedence and makespan. Preserve interrupted execution and zero-length/boundary cases.
  • 43. SequencingWithDeadlinesAndSetUpTimes → QUBO: Position or immediate-successor choices with compiler-switch/setup logic and completion/deadline arithmetic. Setup affects all subsequent completion times.
  • 44. SequencingToMinimizeMaximumCumulativeCost → QUBO: Position assignment, a maximum-prefix variable and exact prefix-bound penalties. Signed cumulative costs and objective recovery need a dedicated proof.
  • 45. ProductionPlanning → QUBO: Binary production/inventory quantities, setup indicators, balance equations and cost-budget penalties. Significant arithmetic remains.
  • 46. RegisterSufficiency → QUBO: Instruction-order encoding with liveness/register-count constraints. Liveness is not merely a fixed pairwise interference relation.
  • 47. RootedTreeStorageAssignment → QUBO: Encoded assignments with tree-dependent storage constraints. Establish a dedicated source-specific construction and extraction proof.

Correctness and acceptance criteria for each implemented rule

  • Resolve exact source/target variants, witness types and value domains. Use QUBO for exact integer optimization where appropriate and Decision<QUBO> for feasibility thresholds; ExpectedRetrievalCost requires a separate f64 analysis. Do not silently turn optimization into fixed-bound feasibility.
  • Specify the construction, penalty bound, omitted constant, feasibility/optimality proof and extraction map. Prove handling of infeasible sources: a QUBO always has configurations, so an arbitrary target optimum must not be reported as a valid source witness.
  • Preserve the source's actual accepted domain, including signed/zero data where accepted, duplicates, empty inputs, precedence cycles and out-of-range requirements. Return typed overflow/construction/extraction errors.
  • Complete repository-required mathematical verification, including independent constructor/adversary checks, before implementation.
  • Write meaningful failing behavior tests first. Compare independently enumerated source solutions against all target optima on small cases; test restored values, NO cases, malformed target witnesses and arithmetic boundaries.
  • Derive every exact/upper-bound parameter formula from the full construction and cover it through parameter_formula_validation. Show actual counts separately from conservative symbolic bounds.
  • Exercise registered chains end to end, including affected upstream reductions. Compare existing direct/indirect alternatives by exact variants.
  • Add rule registration, canonical example, tests and a theorem/proof in docs/paper/reductions.typ. Use the existing sparse QUBO::from_entries constructor; avoid a new general encoding framework unless multiple finished rules justify it.
  • Run required formatting, lint, tests, paper and coverage gates under rust-dev limits. Keep tests under five seconds and satisfy the repository's new-code coverage requirement.
  • Record measured size/coefficient tradeoffs. Do not claim annealer fit without an embedding/precision assessment.

Existing work and exclusions

References and limits of the evidence

  1. O’Gorman et al., Bayesian Network Structure Learning Using Quantum Annealing, §3.3, Eq. (22): pairwise order variables and quadratic transitivity penalties. Applying this to scheduling/ranking objectives is a proposed adaptation.
  2. Venturelli et al., job-shop QUBO formulation, §II: one-hot operation starts, machine conflicts and precedence conflicts. Its fixed-horizon decision formulation is distinct from makespan optimization.
  3. Zhang, Lo Bianco and Beck, Solving Job-Shop Scheduling Problems with QUBO-Based Specialized Hardware (2022): direct time-indexed and disjunctive formulations and scalability tradeoffs.
  4. Lucas, Ising formulations of many NP problems (2014): standard assignment, covering and partitioning penalties.
  5. Glover, Kochenberger and Du, A Tutorial on Formulating and Using QUBO Models: quadratic objectives and penalty-based formulations.

The scan and literature review identify opportunities; no proposed Rust implementation, complete correctness certificate, benchmark or hardware embedding has been validated for this tracker.

P5 — Wider ILP-entry inventory for future triage

The source scan found 141 source-to-ILP declarations across 140 distinct source expressions, excluding ILP casts and QUBO → ILP. This appendix is reproducible source-level evidence, not 141 new rules: it includes P1–P4 candidates, existing direct-QUBO baselines, decision wrappers and macro placeholders. It does not expand every runtime variant or prove that a source-specific formulation improves the existing route. Floating-point targets need separate numeric treatment.

Full inventory: source expression → current ILP target (141 declarations)
Source expression Current ILP target Current rule module
AcyclicPartition<i64> ILP<i64, i64, Bounded> acyclicpartition_ilp.rs
BalancedCompleteBipartiteSubgraph ILP<bool> balancedcompletebipartitesubgraph_ilp.rs
Betweenness ILP<i64, i64, Bounded> betweenness_ilp.rs
BiconnectivityAugmentation<SimpleGraph, i64> ILP<bool> biconnectivityaugmentation_ilp.rs
BinPacking<i64> ILP<bool> binpacking_ilp.rs
BMF ILP<bool> bmf_ilp.rs
BottleneckTravelingSalesman ILP<bool> bottlenecktravelingsalesman_ilp.rs
BoundedComponentSpanningForest<SimpleGraph, i64> ILP<i64, i64, Bounded> boundedcomponentspanningforest_ilp.rs
BoundedDiameterSpanningTree<SimpleGraph, i64> ILP<i64, i64, Bounded> boundeddiameterspanningtree_ilp.rs
CapacityAssignment ILP<bool> capacityassignment_ilp.rs
CircuitSAT ILP<bool> circuit_ilp.rs
ClosestString ILP<i64, i64, Bounded> closeststring_ilp.rs
ClosestSubstring ILP<i64, i64, Bounded> closestsubstring_ilp.rs
Clustering ILP<bool> clustering_ilp.rs
KColoring<KN, SimpleGraph> ILP<bool> coloring_ilp.rs
KColoring<$ktype, SimpleGraph> ILP<bool> coloring_ilp.rs
ConsecutiveBlockMinimization ILP<bool> consecutiveblockminimization_ilp.rs
ConsecutiveOnesMatrixAugmentation ILP<i64, i64, Bounded> consecutiveonesmatrixaugmentation_ilp.rs
ConsecutiveOnesSubmatrix ILP<bool> consecutiveonessubmatrix_ilp.rs
ConsistencyOfDatabaseFrequencyTables ILP<bool> consistencyofdatabasefrequencytables_ilp.rs
CyclicOrdering ILP<i64, i64, Bounded> cyclicordering_ilp.rs
DirectedHamiltonianPath ILP<bool> directedhamiltonianpath_ilp.rs
DirectedTwoCommodityIntegralFlow ILP<i64, i64, Bounded> directedtwocommodityintegralflow_ilp.rs
DisjointConnectingPaths<SimpleGraph> ILP<bool> disjointconnectingpaths_ilp.rs
EnsembleComputation ILP<bool> ensemblecomputation_ilp.rs
EulerianPath ILP<i64, i64, Bounded> eulerianpath_ilp.rs
ExactCoverBy3Sets ILP<bool> exactcoverby3sets_ilp.rs
ExpectedRetrievalCost ILP<bool, f64> expectedretrievalcost_ilp.rs
Factoring ILP<i64, i64, Bounded> factoring_ilp.rs
FeasibleRegisterAssignment ILP<i64, i64, Bounded> feasibleregisterassignment_ilp.rs
FlowShopScheduling ILP<i64, i64, Bounded> flowshopscheduling_ilp.rs
GraphPartitioning<SimpleGraph> ILP<bool> graphpartitioning_ilp.rs
HamiltonianCircuit<SimpleGraph> ILP<i64, i64, Bounded> hamiltoniancircuit_ilp.rs
HamiltonianPath<SimpleGraph> ILP<bool> hamiltonianpath_ilp.rs
HighlyConnectedDeletion<SimpleGraph> ILP<bool> highlyconnecteddeletion_ilp.rs
IntegerKnapsack ILP<i64, i64, Bounded> integerknapsack_ilp.rs
IntegralFlowBundles ILP<i64, i64, Bounded> integralflowbundles_ilp.rs
IntegralFlowHomologousArcs ILP<i64, i64, Bounded> integralflowhomologousarcs_ilp.rs
IntegralFlowWithMultipliers ILP<i64, i64, Bounded> integralflowwithmultipliers_ilp.rs
IsomorphicSpanningTree<SimpleGraph> ILP<bool> isomorphicspanningtree_ilp.rs
KClique<SimpleGraph> ILP<bool> kclique_ilp.rs
Kernel ILP<bool> kernel_ilp.rs
Knapsack ILP<bool> knapsack_ilp.rs
LengthBoundedDisjointPaths<SimpleGraph> ILP<bool> lengthboundeddisjointpaths_ilp.rs
LongestCircuit<SimpleGraph, i64> ILP<bool> longestcircuit_ilp.rs
Decision<LongestCircuit<SimpleGraph, i64>> ILP<bool> longestcircuit_ilp.rs
LongestCommonSubsequence ILP<bool> longestcommonsubsequence_ilp.rs
LongestPath<SimpleGraph, i64> ILP<i64, i64, Bounded> longestpath_ilp.rs
MaximalIS<SimpleGraph, i64> ILP<bool> maximalis_ilp.rs
Maximum2Satisfiability ILP<bool> maximum2satisfiability_ilp.rs
MaximumClique<SimpleGraph, i64> ILP<bool> maximumclique_ilp.rs
MaximumCoKPlex<SimpleGraph, i64, KN> ILP<bool> maximumcokplex_ilp.rs
MaximumCoKPlex<SimpleGraph, One, KN> ILP<bool> maximumcokplex_ilp.rs
MaximumCommonEdgeSubgraph ILP<bool> maximumcommonedgesubgraph_ilp.rs
MaximumContactMapOverlap ILP<bool> maximumcontactmapoverlap_ilp.rs
MaximumDomaticNumber<SimpleGraph> ILP<bool> maximumdomaticnumber_ilp.rs
MaximumEdgeWeightedKClique<i64> ILP<bool> maximumedgeweightedkclique_ilp.rs
MaximumEdgeWeightedKClique<f64> ILP<bool, f64> maximumedgeweightedkclique_ilp.rs
MaximumLeafSpanningTree<SimpleGraph> ILP<i64, i64, Bounded> maximumleafspanningtree_ilp.rs
MaximumLikelihoodRanking ILP<bool> maximumlikelihoodranking_ilp.rs
MaximumMatching<SimpleGraph, i64> ILP<bool> maximummatching_ilp.rs
MaximumSetPacking<i64> ILP<bool> maximumsetpacking_ilp.rs
MinimumCapacitatedSpanningTree<SimpleGraph, i64> ILP<i64, i64, Bounded> minimumcapacitatedspanningtree_ilp.rs
MinimumCodeGenerationUnlimitedRegisters ILP<i64, i64, Bounded> minimumcodegenerationunlimitedregisters_ilp.rs
MinimumCoveringByCliques<SimpleGraph> ILP<bool> minimumcoveringbycliques_ilp.rs
MinimumCutIntoBoundedSets<SimpleGraph, i64> ILP<bool> minimumcutintoboundedsets_ilp.rs
MinimumDominatingSet<SimpleGraph, i64> ILP<bool> minimumdominatingset_ilp.rs
MinimumEdgeCostFlow ILP<i64, i64, Bounded> minimumedgecostflow_ilp.rs
MinimumExternalMacroDataCompression ILP<bool> minimumexternalmacrodatacompression_ilp.rs
MinimumFaultDetectionTestSet ILP<bool> minimumfaultdetectiontestset_ilp.rs
MinimumFeedbackArcSet<i64> ILP<i64, i64, Bounded> minimumfeedbackarcset_ilp.rs
MinimumFeedbackVertexSet<i64> ILP<i64, i64, Bounded> minimumfeedbackvertexset_ilp.rs
MinimumGraphBandwidth<SimpleGraph> ILP<i64, i64, Bounded> minimumgraphbandwidth_ilp.rs
MinimumHittingSet ILP<bool> minimumhittingset_ilp.rs
MinimumInternalMacroDataCompression ILP<bool> minimuminternalmacrodatacompression_ilp.rs
MinimumMatrixCover ILP<bool> minimummatrixcover_ilp.rs
MinimumMaximalMatching<SimpleGraph> ILP<bool> minimummaximalmatching_ilp.rs
MinimumMetricDimension<SimpleGraph> ILP<bool> minimummetricdimension_ilp.rs
MinimumMultiwayCut<SimpleGraph, i64> ILP<bool> minimummultiwaycut_ilp.rs
MinimumSetCovering<i64> ILP<bool> minimumsetcovering_ilp.rs
MinimumSumMulticenter<SimpleGraph, i64> ILP<bool> minimumsummulticenter_ilp.rs
MinimumTardinessSequencing<One> ILP<bool> minimumtardinesssequencing_ilp.rs
MinimumTardinessSequencing<i64> ILP<bool> minimumtardinesssequencing_ilp.rs
MinimumWeightAndOrGraph ILP<i64, i64, Bounded> minimumweightandorgraph_ilp.rs
MinimumWeightDecoding ILP<i64, i64, Bounded> minimumweightdecoding_ilp.rs
MinMaxMulticenter<SimpleGraph, i64> ILP<i64, i64, Bounded> minmaxmulticenter_ilp.rs
MixedChinesePostman<i64> ILP<i64, i64, Bounded> mixedchinesepostman_ilp.rs
MonochromaticTriangle<SimpleGraph> ILP<bool> monochromatictriangle_ilp.rs
MultipleChoiceBranching<i64> ILP<i64, i64, Bounded> multiplechoicebranching_ilp.rs
MultipleCopyFileAllocation ILP<bool> multiplecopyfileallocation_ilp.rs
MultiprocessorScheduling ILP<bool> multiprocessorscheduling_ilp.rs
NAESatisfiability ILP<bool> naesatisfiability_ilp.rs
NumericalMatchingWithTargetSums ILP<bool> numericalmatchingwithtargetsums_ilp.rs
OneInThreeSatisfiability ILP<bool> oneinthreesatisfiability_ilp.rs
OpenShopScheduling ILP<i64, i64, Bounded> openshopscheduling_ilp.rs
Decision<OpenShopScheduling> ILP<i64, i64, Bounded> openshopscheduling_ilp.rs
OptimalLinearArrangement<SimpleGraph> ILP<i64, i64, Bounded> optimallineararrangement_ilp.rs
OptimumCommunicationSpanningTree ILP<bool> optimumcommunicationspanningtree_ilp.rs
PaintShop ILP<bool> paintshop_ilp.rs
PartiallyOrderedKnapsack ILP<bool> partiallyorderedknapsack_ilp.rs
PartitionIntoCliques<SimpleGraph> ILP<bool> partitionintocliques_ilp.rs
PartitionIntoPathsOfLength2<SimpleGraph> ILP<bool> partitionintopathsoflength2_ilp.rs
PartitionIntoPerfectMatchings<SimpleGraph> ILP<i64, i64, Bounded> partitionintoperfectmatchings_ilp.rs
PartitionIntoTriangles<SimpleGraph> ILP<bool> partitionintotriangles_ilp.rs
PathConstrainedNetworkFlow ILP<i64, i64, Bounded> pathconstrainednetworkflow_ilp.rs
PrecedenceConstrainedScheduling ILP<bool> precedenceconstrainedscheduling_ilp.rs
PreemptiveScheduling ILP<i64, i64, Bounded> preemptivescheduling_ilp.rs
ProductionPlanning ILP<i64, i64, Bounded> productionplanning_ilp.rs
QuadraticAssignment ILP<bool> quadraticassignment_ilp.rs
RectilinearPictureCompression ILP<bool> rectilinearpicturecompression_ilp.rs
RegisterSufficiency ILP<bool> registersufficiency_ilp.rs
ResourceConstrainedScheduling ILP<bool> resourceconstrainedscheduling_ilp.rs
RootedTreeStorageAssignment ILP<i64, i64, Bounded> rootedtreestorageassignment_ilp.rs
RuralPostman<SimpleGraph, i64> ILP<i64, i64, Bounded> ruralpostman_ilp.rs
SchedulingToMinimizeWeightedCompletionTime ILP<i64, i64, Bounded> schedulingtominimizeweightedcompletiontime_ilp.rs
SchedulingWithIndividualDeadlines ILP<bool> schedulingwithindividualdeadlines_ilp.rs
SequencingToMinimizeMaximumCumulativeCost ILP<i64, i64, Bounded> sequencingtominimizemaximumcumulativecost_ilp.rs
SequencingToMinimizeTardyTaskWeight ILP<bool> sequencingtominimizetardytaskweight_ilp.rs
SequencingToMinimizeWeightedCompletionTime ILP<i64, i64, Bounded> sequencingtominimizeweightedcompletiontime_ilp.rs
SequencingToMinimizeWeightedTardiness ILP<i64, i64, Bounded> sequencingtominimizeweightedtardiness_ilp.rs
SequencingWithDeadlinesAndSetUpTimes ILP<bool> sequencingwithdeadlinesandsetuptimes_ilp.rs
SequencingWithinIntervals ILP<bool> sequencingwithinintervals_ilp.rs
SequencingWithReleaseTimesAndDeadlines ILP<i64, i64, Bounded> sequencingwithreleasetimesanddeadlines_ilp.rs
SequencingWithReleaseTimesAndDeadlines ILP<bool> sequencingwithreleasetimesanddeadlines_ilp.rs
SetSplitting ILP<bool> setsplitting_ilp.rs
ShortestCommonSupersequence ILP<bool> shortestcommonsupersequence_ilp.rs
ShortestWeightConstrainedPath<SimpleGraph, i64> ILP<i64, i64, Bounded> shortestweightconstrainedpath_ilp.rs
SparseMatrixCompression ILP<bool> sparsematrixcompression_ilp.rs
StackerCrane ILP<bool> stackercrane_ilp.rs
SteinerTree<SimpleGraph, i64> ILP<bool> steinertree_ilp.rs
StringToStringCorrection ILP<bool> stringtostringcorrection_ilp.rs
StrongConnectivityAugmentation<i64> ILP<bool> strongconnectivityaugmentation_ilp.rs
SubgraphIsomorphism ILP<bool> subgraphisomorphism_ilp.rs
SumOfSquaresPartition ILP<bool> sumofsquarespartition_ilp.rs
ThreeDimensionalMatching ILP<bool> threedimensionalmatching_ilp.rs
ThreePartition ILP<bool> threepartition_ilp.rs
TimetableDesign ILP<bool> timetabledesign_ilp.rs
TravelingSalesman<SimpleGraph, i64> ILP<bool> travelingsalesman_ilp.rs
TwoDimensionalConsecutiveSets ILP<i64, i64, Bounded> twodimensionalconsecutivesets_ilp.rs
UndirectedFlowLowerBounds ILP<i64, i64, Bounded> undirectedflowlowerbounds_ilp.rs
UndirectedTwoCommodityIntegralFlow ILP<i64, i64, Bounded> undirectedtwocommodityintegralflow_ilp.rs

Activity

  1. isPANN commented on Oct 22, 2026

    @isPANN
    CollaboratorAuthor

    Phase 2 is now in draft PR #1215, stacked on Phase 1 draft #1214. It implements 12 candidates and documents the three deferrals: signed weighted-completion scheduling, floating ExpectedRetrievalCost, and optimization BottleneckTravelingSalesman. The roadmap remains open for these and later phases.

    Local checks, manual, coverage (98.14% of new production lines), and fresh-context review pass. Read-only corpus validation checked all 1,200 polynomials and 845 oracle-witness round trips; 110/120 sampled raw target solves completed, with ten precedence-scheduling timeouts explicitly reported. All 32,372 corpus files remain unchanged. The PR includes proofs, constructor/adversary scripts, measured route comparisons and limitations.

    Please kindly check the following items (PR #1215):

    • Paper (current main PDF, new proof source in the draft): check definitions, proof sketches, canonical examples, and reproducible pred commands. The new PDF was compiled locally; the main PDF does not yet include this draft.
    • Implementation (Optional): spot-check the 12 direct reductions and shared unit-schedule encoding for correctness.

    Join the discussion on Zulip — feel free to ask questions or leave feedback there.

    Keep PR #1215 draft; do not merge it or close this roadmap.

  2. isPANN commented on Oct 22, 2026

    @isPANN
    CollaboratorAuthor

    Phase 3 is now in draft PR #1216, stacked on the still-unmerged Phase 2 draft #1215 at ecc0ad5a. Phase 1 #1214 and all other worktrees are preserved. Commit: 01f6e3ae.

    Implemented in roadmap order: MinimumTardinessSequencing, bounded-feasibility SequencingToMinimizeWeightedTardiness, SequencingWithReleaseTimesAndDeadlines, DynamicStorageAllocation, fixed-register FeasibleRegisterAssignment, ShortestCommonSupersequence, and Betweenness. Seven other candidates remain explicitly deferred with measured/no-proof reasons in the PR: signed tardy-task weight, multiprocessor scheduling, resource-constrained scheduling, signed BinPacking, CapacityAssignment, LCS, and graph-bandwidth optimization. Phase 2's weighted-completion scheduling, ExpectedRetrievalCost and BottleneckTravelingSalesman also remain deferred.

    The PR includes actual variable/coupling/coefficient comparisons and regressions, proofs and independent adversary certificates, exact domain/witness/aggregate contracts, pseudopolynomial horizon/capacity limits, source arithmetic guards, and a fresh-context review with both substantive findings resolved. Read-only corpus checks passed 700/700; separate raw-target solves passed 50/70 with 20 explicit timeouts. All 32,372 corpus file hashes are unchanged. Local check/paper/coverage pass; new production coverage is 98.99%. CI/Codecov do not trigger for the stacked base.

    A signed BinPacking existing-route defect is documented rather than hidden: sizes [-1], capacity 1 has source optimum 1 while the old ILP permits assignment/use [1,0] with objective 0. This remains follow-up work; no partial positive-domain rule was registered.

    Keep this roadmap open and all three PRs draft. Remaining work includes the deferred candidates and documented formulation/route limits.

    Please kindly check the following items (PR #1216):

    • Paper (draft source, reproduce PDF with make paper): check definitions, proofs, examples, and reproducible pred commands for the seven named rules.
    • Implementation (Optional): spot-check the source files changed in the draft PR for correctness.

    Join the discussion on Zulip — feel free to ask questions or leave feedback there.

  3. isPANN commented on Oct 22, 2026

    @isPANN
    CollaboratorAuthor

    Phase 3 draft PR #1216 now retains four rules: MinimumTardinessSequencing, SequencingWithReleaseTimesAndDeadlines, DynamicStorageAllocation, and ShortestCommonSupersequence. Commit 109985f4103d4c4785f60b8a34007580cd7f2434; still stacked on unmerged Phase 2 draft #1215 at ecc0ad5a.

    Following the requested timeout exclusion, the new SequencingToMinimizeWeightedTardiness, FeasibleRegisterAssignment, and Betweenness rules have been removed. Small-source raw target solves remain unresolved for those candidates, including the affected 3SAT and SetSplitting chains. Existing source models and ILP routes are preserved. SCS stays because all ten earlier timeouts now complete optimally.

    Current evidence: 400/400 corpus coefficient/truth checks (316 with oracle-witness/value recovery), 40/40 selected unhinted raw target solves with zero timeouts, and the ThreePartition → release/deadline upstream chain completed. Corpus integrity unchanged across 32,372 files. make check (7,130 tests/doctests), paper, CLI installation and coverage passed; new production coverage 98.76%. Simplify preceded fresh-context review; no unresolved substantive findings.

    The other seven Phase 3 candidates and the three carried-forward Phase 2 candidates remain deferred as detailed in the draft. This updates the earlier seven-rule scope; it does not close the roadmap. All other worktrees are preserved. Keep the PR draft; do not merge.

  4. isPANN commented on Oct 22, 2026

    @isPANN
    CollaboratorAuthor

    Phase 4 is now draft PR #1217, stacked on the final four-rule Phase 3 head. Only StaffScheduling → DecisionQUBO ships: first outgoing route, exact integer multiplicities and YES/NO recovery, 219/219 raw target cases completed under the fixed 15-second single-worker configuration. All 100 staffing and 100 X3C corpus instances were included; corpus hashes are unchanged. Source solving and the existing direct X3C route remain faster.

    The other nine Phase 4 candidates remain deferred: eight preliminary constructions timed out, and RootedTreeStorageAssignment lacks a proved practical branching-tree encoding. The PR has a full domain audit, actual baseline measurements, proof/adversary certificate, all per-case results and fresh review. No excluded Phase 1–3 rule is restored and no inherited gap is claimed fixed. Keep this roadmap open.

    Please kindly check the following items (PR #1217):

    • Paper (new theorem source): check definition, proof, canonical example and reproducible pred commands; local PDF build passed.
    • Implementation (Optional): spot-check the staffing reducer and tests for correctness.

    Join the discussion on Zulip — feel free to ask questions or leave feedback there.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Type

    No type

    Projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions