Skip to content

Commit 66e9050

Browse files
isPANNclaudezazabap
authored
Fix #765: Upgrade 17 decision models to optimization (Group A + B) (#771)
* Upgrade LongestCircuit from decision (Or) to optimization (Max<W::Sum>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade OptimalLinearArrangement from decision (Or) to optimization (Min<usize>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade RuralPostman from decision (Or) to optimization (Min<W::Sum>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade MixedChinesePostman from decision (Or) to optimization (Min<W::Sum>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade StackerCrane from decision (Or) to optimization (Min<i32>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade MinimumCardinalityKey from decision (Or) to optimization (Min<i64>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade SequencingToMinimizeMaximumCumulativeCost from decision (Or) to optimization (Min<i64>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade MultipleCopyFileAllocation from decision (Or) to optimization (Min<i64>) + ILP rewrite Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade ExpectedRetrievalCost from decision (Or) to optimization (Min<f64>) + ILP rewrite Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade SumOfSquaresPartition from decision (Or) to optimization (Min<i64>) + ILP rewrite Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade LongestCommonSubsequence from decision (Or) to optimization (Max<usize>) + ILP rewrite + config redesign Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade ShortestCommonSupersequence from decision (Or) to optimization (Min<usize>) + config redesign Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix CLI create.rs and example-db after Group A model upgrades - Remove bound parameter from 8 model constructor calls in CLI create - Remove associated bound parsing/validation code and CLI tests - Fix SumOfSquaresPartition canonical example (optimal is 226, not 230) - Fix StackerCrane example-db test assertion (no longer has bound field) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * chore: rustfmt formatting fixes Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade MinimumCutIntoBoundedSets from decision (Or) to optimization (Min<W::Sum>) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade ShortestWeightConstrainedPath from decision (Or) to optimization (Min<N::Sum>) + ILP rewrite Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade CapacityAssignment from decision (Or) to optimization (Min<u128>) + ILP rewrite Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade MinMaxMulticenter from decision (Or) to optimization (Min<W::Sum>) + minimax ILP rewrite Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Upgrade LengthBoundedDisjointPaths from decision (Or) to optimization (Max<usize>) + config redesign Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Adapt Tier 3 ILP rules + solver for optimization model API after main merge - Convert 10 ILP rules from feasibility to optimization (remove bound, add objective) - Fix SCS ILP: add contiguous padding constraint, fix alphabet_size field - Mark OLA ILP<i32> tests as ignored (ILP solver too slow for integer variables) - Fix sequencing ILP test to use ILPSolver instead of brute-force on ILP<i32> Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix example-db test hang: prefer brute-force over ILP for small instances - model_specs_are_optimal now tries brute-force first for instances with search space ≤ 2^20, avoiding HiGHS hangs on ILP<i32> reductions - Hardcode OLA and Sequencing ILP canonical example solutions (avoid calling ILPSolver at example-db build time for ILP<i32> targets) Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix ILP<i32> solver performance: tighten variable bounds for HiGHS Root cause: ILP<i32> variables default to domain [0, 2^31], causing HiGHS to hang on even tiny instances. Two fixes: 1. ILP solver: derive tighter per-variable upper bounds from single-variable ≤ constraints before passing to HiGHS (covers x and p variables) 2. OLA ILP: add z_e ≤ n-1 bound (max position difference) 3. Sequencing ILP: add z ≤ Σ|costs| bound (max cumulative cost) Restores ILPSolver calls in canonical rule examples (removes hardcoded solutions) and reverts model_specs_are_optimal to ILP-first strategy. Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Fix CLI test: remove --bound from MinimumCardinalityKey customized solver test Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * Improve test coverage: un-ignore OLA ILP tests, add missing branch coverage - Remove #[ignore] from OLA ILP tests (HiGHS is fast now with z bounds) - Add rural_postman tests: wrong config length, is_weighted, solver aggregate - Add SWCP test: weight bound exceeded - Covers codecov gaps in rural_postman, shortest_weight_constrained_path, and optimallineararrangement_ilp Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> * fix: address PR #771 review comments - Fix CustomizedSolver for MinimumCardinalityKey to guarantee minimum cardinality using iterative deepening by subset size, not just any minimal key (critical correctness fix for optimization upgrade) - Remove stale --bound references from CLI help and usage strings for LongestCircuit, MixedChinesePostman, RuralPostman, StackerCrane, LCS, SCS, MinimumCardinalityKey, MultipleCopyFileAllocation, and SequencingToMinimizeMaximumCumulativeCost - Remove stale --num-paths-required from LengthBoundedDisjointPaths help - Remove stale --k from MinimumCardinalityKey help - Remove --length-bound from SWCP example in docs/src/cli.md - Fix OLA->ILP overhead num_constraints (add num_edges for z_e bounds) - Fix LongestCircuit->ILP overhead (n-1 commodities, not n) - Allow LCS max_length == 0 for empty input strings instead of panicking - Strengthen LCS brute-force test assertion to check exact optimal value - Add optimality assertions to CustomizedSolver MCK tests - Update cli_tests to reflect removed --bound flags Co-Authored-By: Claude Opus 4.6 (1M context) <noreply@anthropic.com> --------- Co-authored-by: Claude Opus 4.6 (1M context) <noreply@anthropic.com> Co-authored-by: zazabap <sweynan@icloud.com>
1 parent 88fb8f7 commit 66e9050

File tree

79 files changed

+2489
-3098
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

79 files changed

+2489
-3098
lines changed

docs/paper/reductions.typ

Lines changed: 120 additions & 134 deletions
Large diffs are not rendered by default.

docs/src/cli.md

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ pred create MIS --graph 0-1,1-2,2-3 --weights 3,1,2,1 -o weighted.json
5656
pred create SteinerTree --graph 0-1,0-3,1-2,1-3,2-3,2-4,3-4 --edge-weights 2,5,2,1,5,6,1 --terminals 0,2,4 -o steiner.json
5757

5858
# Create a Length-Bounded Disjoint Paths instance
59-
pred create LengthBoundedDisjointPaths --graph 0-1,1-6,0-2,2-3,3-6,0-4,4-5,5-6 --source 0 --sink 6 --num-paths-required 2 --bound 3 -o lbdp.json
59+
pred create LengthBoundedDisjointPaths --graph 0-1,1-6,0-2,2-3,3-6,0-4,4-5,5-6 --source 0 --sink 6 --bound 4 -o lbdp.json
6060

6161
# Create a Consecutive Block Minimization instance (alias: CBM)
6262
pred create CBM --matrix '[[true,false,true],[false,true,true]]' --bound 2 -o cbm.json
@@ -149,7 +149,7 @@ Registered problems: 50 types, 59 reductions, 69 variant nodes
149149
KSatisfiability/K2 O(num_clauses + num_variables)
150150
KSatisfiability/K3 O(1.307^num_variables)
151151
Knapsack * 1 O(2^(0.5 * num_items))
152-
LengthBoundedDisjointPaths/SimpleGraph * O(2^(num_paths_required * num_vertices))
152+
LengthBoundedDisjointPaths/SimpleGraph * O(2^(max_paths * num_vertices))
153153
LongestCommonSubsequence * LCS 1 O(2^min_string_length)
154154
MaxCut/SimpleGraph/i32 * 1 O(2^(0.7906666666666666 * num_vertices))
155155
MaximalIS/SimpleGraph/i32 * O(3^(0.3333333333333333 * num_vertices))
@@ -353,18 +353,18 @@ pred create KColoring --k 3 --graph 0-1,1-2,2-0 -o kcol.json
353353
pred create KthBestSpanningTree --graph 0-1,0-2,1-2 --edge-weights 2,3,1 --k 1 --bound 3 -o kth.json
354354
pred create SpinGlass --graph 0-1,1-2 -o sg.json
355355
pred create MaxCut --graph 0-1,1-2,2-0 -o maxcut.json
356-
pred create MinMaxMulticenter --graph 0-1,1-2,2-3 --weights 1,1,1,1 --edge-weights 1,1,1 --k 2 --bound 1 -o pcenter.json
357-
pred create ShortestWeightConstrainedPath --graph 0-1,0-2,1-3,2-3,2-4,3-5,4-5,1-4 --edge-lengths 2,4,3,1,5,4,2,6 --edge-weights 5,1,2,3,2,3,1,1 --source-vertex 0 --target-vertex 5 --length-bound 10 --weight-bound 8 -o swcp.json
356+
pred create MinMaxMulticenter --graph 0-1,1-2,2-3 --weights 1,1,1,1 --edge-weights 1,1,1 --k 2 -o pcenter.json
357+
pred create ShortestWeightConstrainedPath --graph 0-1,0-2,1-3,2-3,2-4,3-5,4-5,1-4 --edge-lengths 2,4,3,1,5,4,2,6 --edge-weights 5,1,2,3,2,3,1,1 --source-vertex 0 --target-vertex 5 --weight-bound 8 -o swcp.json
358358
pred create RectilinearPictureCompression --matrix "1,1,0,0;1,1,0,0;0,0,1,1;0,0,1,1" --k 2 -o rpc.json
359359
pred solve rpc.json --solver brute-force
360360
pred create MinimumMultiwayCut --graph 0-1,1-2,2-3,3-0 --terminals 0,2 --edge-weights 3,1,2,4 -o mmc.json
361361
pred create SteinerTree --graph 0-1,0-3,1-2,1-3,2-3,2-4,3-4 --edge-weights 2,5,2,1,5,6,1 --terminals 0,2,4 -o steiner.json
362362
pred create UndirectedTwoCommodityIntegralFlow --graph 0-2,1-2,2-3 --capacities 1,1,2 --source-1 0 --sink-1 3 --source-2 1 --sink-2 3 --requirement-1 1 --requirement-2 1 -o utcif.json
363-
pred create LengthBoundedDisjointPaths --graph 0-1,1-6,0-2,2-3,3-6,0-4,4-5,5-6 --source 0 --sink 6 --num-paths-required 2 --bound 3 -o lbdp.json
363+
pred create LengthBoundedDisjointPaths --graph 0-1,1-6,0-2,2-3,3-6,0-4,4-5,5-6 --source 0 --sink 6 --bound 4 -o lbdp.json
364364
pred create Factoring --target 15 --bits-m 4 --bits-n 4 -o factoring.json
365365
pred create Factoring --target 21 --bits-m 3 --bits-n 3 -o factoring2.json
366366
pred create X3C --universe 9 --sets "0,1,2;0,2,4;3,4,5;3,5,7;6,7,8;1,4,6;2,5,8" -o x3c.json
367-
pred create MinimumCardinalityKey --num-attributes 6 --dependencies "0,1>2;0,2>3;1,3>4;2,4>5" --k 2 -o mck.json
367+
pred create MinimumCardinalityKey --num-attributes 6 --dependencies "0,1>2;0,2>3;1,3>4;2,4>5" -o mck.json
368368
pred create MinimumTardinessSequencing --n 5 --deadlines 5,5,5,3,3 --precedence-pairs "0>3,1>3,1>4,2>4" -o mts.json
369369
pred create SchedulingWithIndividualDeadlines --n 7 --deadlines 2,1,2,2,3,3,2 --num-processors 3 --precedence-pairs "0>3,1>3,1>4,2>4,2>5" -o swid.json
370370
pred solve swid.json --solver brute-force
@@ -516,7 +516,7 @@ Stdin is supported with `-`:
516516
```bash
517517
pred create MIS --graph 0-1,1-2,2-3 | pred solve -
518518
pred create MIS --graph 0-1,1-2,2-3 | pred solve - --solver brute-force
519-
pred create MinMaxMulticenter --graph 0-1,1-2,2-3 --weights 1,1,1,1 --edge-weights 1,1,1 --k 2 --bound 1 | pred solve - --solver brute-force
519+
pred create MinMaxMulticenter --graph 0-1,1-2,2-3 --weights 1,1,1,1 --edge-weights 1,1,1 --k 2 | pred solve - --solver brute-force
520520
pred create TwoDimensionalConsecutiveSets --alphabet-size 6 --sets "0,1,2;3,4,5;1,3;2,4;0,5" | pred solve - --solver brute-force
521521
```
522522
@@ -551,7 +551,7 @@ Source evaluation: Max(2)
551551
For example, the canonical Minimum Cardinality Key instance can be created and solved with:
552552
553553
```bash
554-
pred create MinimumCardinalityKey --num-attributes 6 --dependencies "0,1>2;0,2>3;1,3>4;2,4>5" --k 2 -o mck.json
554+
pred create MinimumCardinalityKey --num-attributes 6 --dependencies "0,1>2;0,2>3;1,3>4;2,4>5" -o mck.json
555555
pred solve mck.json --solver brute-force
556556
```
557557

problemreductions-cli/src/cli.rs

Lines changed: 20 additions & 23 deletions
Original file line numberDiff line numberDiff line change
@@ -218,7 +218,7 @@ Flags by problem type:
218218
MIS, MVC, MaxClique, MinDomSet --graph, --weights
219219
MaxCut, MaxMatching, TSP, BottleneckTravelingSalesman --graph, --edge-weights
220220
LongestPath --graph, --edge-lengths, --source-vertex, --target-vertex
221-
ShortestWeightConstrainedPath --graph, --edge-lengths, --edge-weights, --source-vertex, --target-vertex, --length-bound, --weight-bound
221+
ShortestWeightConstrainedPath --graph, --edge-lengths, --edge-weights, --source-vertex, --target-vertex, --weight-bound
222222
MaximalIS --graph, --weights
223223
SAT, NAESAT --num-vars, --clauses
224224
KSAT --num-vars, --clauses [--k]
@@ -231,9 +231,9 @@ Flags by problem type:
231231
GraphPartitioning --graph
232232
GeneralizedHex --graph, --source, --sink
233233
IntegralFlowWithMultipliers --arcs, --capacities, --source, --sink, --multipliers, --requirement
234-
MinimumCutIntoBoundedSets --graph, --edge-weights, --source, --sink, --size-bound, --cut-bound
234+
MinimumCutIntoBoundedSets --graph, --edge-weights, --source, --sink, --size-bound
235235
HamiltonianCircuit, HC --graph
236-
LongestCircuit --graph, --edge-weights, --bound
236+
LongestCircuit --graph, --edge-weights
237237
BoundedComponentSpanningForest --graph, --weights, --k, --bound
238238
UndirectedFlowLowerBounds --graph, --capacities, --lower-bounds, --source, --sink, --requirement
239239
IntegralFlowBundles --arcs, --bundles, --bundle-capacities, --source, --sink, --requirement [--num-vertices]
@@ -242,14 +242,14 @@ Flags by problem type:
242242
IntegralFlowHomologousArcs --arcs, --capacities, --source, --sink, --requirement, --homologous-pairs
243243
IsomorphicSpanningTree --graph, --tree
244244
KthBestSpanningTree --graph, --edge-weights, --k, --bound
245-
LengthBoundedDisjointPaths --graph, --source, --sink, --num-paths-required, --bound
245+
LengthBoundedDisjointPaths --graph, --source, --sink, --bound
246246
PathConstrainedNetworkFlow --arcs, --capacities, --source, --sink, --paths, --requirement
247247
Factoring --target, --m, --n
248248
BinPacking --sizes, --capacity
249-
CapacityAssignment --capacities, --cost-matrix, --delay-matrix, --cost-budget, --delay-budget
249+
CapacityAssignment --capacities, --cost-matrix, --delay-matrix, --delay-budget
250250
SubsetSum --sizes, --target
251-
SumOfSquaresPartition --sizes, --num-groups, --bound
252-
ExpectedRetrievalCost --probabilities, --num-sectors, --latency-bound
251+
SumOfSquaresPartition --sizes, --num-groups
252+
ExpectedRetrievalCost --probabilities, --num-sectors
253253
PaintShop --sequence
254254
MaximumSetPacking --sets [--weights]
255255
MinimumHittingSet --universe, --sets
@@ -258,7 +258,7 @@ Flags by problem type:
258258
ComparativeContainment --universe, --r-sets, --s-sets [--r-weights] [--s-weights]
259259
X3C (ExactCoverBy3Sets) --universe, --sets (3 elements each)
260260
SetBasis --universe, --sets, --k
261-
MinimumCardinalityKey --num-attributes, --dependencies, --k
261+
MinimumCardinalityKey --num-attributes, --dependencies
262262
PrimeAttributeName --universe, --deps, --query
263263
RootedTreeStorageAssignment --universe, --sets, --bound
264264
TwoDimensionalConsecutiveSets --alphabet-size, --sets
@@ -272,23 +272,23 @@ Flags by problem type:
272272
ConsecutiveOnesSubmatrix --matrix (0/1), --k
273273
SparseMatrixCompression --matrix (0/1), --bound
274274
SteinerTree --graph, --edge-weights, --terminals
275-
MultipleCopyFileAllocation --graph, --usage, --storage, --bound
275+
MultipleCopyFileAllocation --graph, --usage, --storage
276276
AcyclicPartition --arcs [--weights] [--arc-costs] --weight-bound --cost-bound [--num-vertices]
277277
CVP --basis, --target-vec [--bounds]
278278
MultiprocessorScheduling --lengths, --num-processors, --deadline
279279
SequencingWithinIntervals --release-times, --deadlines, --lengths
280-
OptimalLinearArrangement --graph, --bound
280+
OptimalLinearArrangement --graph
281281
RootedTreeArrangement --graph, --bound
282-
MinMaxMulticenter (pCenter) --graph, --weights, --edge-weights, --k, --bound
283-
MixedChinesePostman (MCPP) --graph, --arcs, --edge-weights, --arc-costs, --bound [--num-vertices]
284-
RuralPostman (RPP) --graph, --edge-weights, --required-edges, --bound
285-
StackerCrane --arcs, --graph, --arc-costs, --edge-lengths, --bound [--num-vertices]
282+
MinMaxMulticenter (pCenter) --graph, --weights, --edge-weights, --k
283+
MixedChinesePostman (MCPP) --graph, --arcs, --edge-weights, --arc-costs [--num-vertices]
284+
RuralPostman (RPP) --graph, --edge-weights, --required-edges
285+
StackerCrane --arcs, --graph, --arc-costs, --edge-lengths [--num-vertices]
286286
MultipleChoiceBranching --arcs [--weights] --partition --bound [--num-vertices]
287287
AdditionalKey --num-attributes, --dependencies, --relation-attrs [--known-keys]
288288
ConsistencyOfDatabaseFrequencyTables --num-objects, --attribute-domains, --frequency-tables [--known-values]
289289
SubgraphIsomorphism --graph (host), --pattern (pattern)
290290
GroupingBySwapping --string, --bound [--alphabet-size]
291-
LCS --strings, --bound [--alphabet-size]
291+
LCS --strings [--alphabet-size]
292292
FAS --arcs [--weights] [--num-vertices]
293293
FVS --arcs [--weights] [--num-vertices]
294294
QBF --num-vars, --clauses, --quantifiers
@@ -304,10 +304,10 @@ Flags by problem type:
304304
MinimumTardinessSequencing --n, --deadlines [--precedence-pairs]
305305
RectilinearPictureCompression --matrix (0/1), --k
306306
SchedulingWithIndividualDeadlines --n, --num-processors/--m, --deadlines [--precedence-pairs]
307-
SequencingToMinimizeMaximumCumulativeCost --costs, --bound [--precedence-pairs]
307+
SequencingToMinimizeMaximumCumulativeCost --costs [--precedence-pairs]
308308
SequencingToMinimizeWeightedCompletionTime --lengths, --weights [--precedence-pairs]
309309
SequencingToMinimizeWeightedTardiness --sizes, --weights, --deadlines, --bound
310-
SCS --strings, --bound [--alphabet-size]
310+
SCS --strings [--alphabet-size]
311311
StringToStringCorrection --source-string, --target-string, --bound [--alphabet-size]
312312
D2CIF --arcs, --capacities, --source-1, --sink-1, --source-2, --sink-2, --requirement-1, --requirement-2
313313
MinimumDummyActivitiesPert --arcs [--num-vertices]
@@ -328,7 +328,7 @@ Examples:
328328
pred create MIS --graph 0-1,1-2,2-3 --weights 1,1,1
329329
pred create SAT --num-vars 3 --clauses \"1,2;-1,3\"
330330
pred create QUBO --matrix \"1,0.5;0.5,2\"
331-
pred create CapacityAssignment --capacities 1,2,3 --cost-matrix \"1,3,6;2,4,7;1,2,5\" --delay-matrix \"8,4,1;7,3,1;6,3,1\" --cost-budget 10 --delay-budget 12
331+
pred create CapacityAssignment --capacities 1,2,3 --cost-matrix \"1,3,6;2,4,7;1,2,5\" --delay-matrix \"8,4,1;7,3,1;6,3,1\" --delay-budget 12
332332
pred create GeneralizedHex --graph 0-1,0-2,0-3,1-4,2-4,3-4,4-5 --source 0 --sink 5
333333
pred create IntegralFlowWithMultipliers --arcs \"0>1,0>2,1>3,2>3\" --capacities 1,1,2,2 --source 0 --sink 3 --multipliers 1,2,3,1 --requirement 2
334334
pred create MultipleChoiceBranching/i32 --arcs \"0>1,0>2,1>3,2>3,1>4,3>5,4>5,2>4\" --weights 3,2,4,1,2,3,1,3 --partition \"0,1;2,3;4,7;5,6\" --bound 10
@@ -347,7 +347,7 @@ Examples:
347347
pred create IntegralFlowHomologousArcs --arcs \"0>1,0>2,1>3,2>3,1>4,2>4,3>5,4>5\" --capacities 1,1,1,1,1,1,1,1 --source 0 --sink 5 --requirement 2 --homologous-pairs \"2=5;4=3\"
348348
pred create X3C --universe 9 --sets \"0,1,2;0,2,4;3,4,5;3,5,7;6,7,8;1,4,6;2,5,8\"
349349
pred create SetBasis --universe 4 --sets \"0,1;1,2;0,2;0,1,2\" --k 3
350-
pred create MinimumCardinalityKey --num-attributes 6 --dependencies \"0,1>2;0,2>3;1,3>4;2,4>5\" --k 2
350+
pred create MinimumCardinalityKey --num-attributes 6 --dependencies \"0,1>2;0,2>3;1,3>4;2,4>5\"
351351
pred create PrimeAttributeName --universe 6 --deps \"0,1>2,3,4,5;2,3>0,1,4,5\" --query 3
352352
pred create TwoDimensionalConsecutiveSets --alphabet-size 6 --sets \"0,1,2;3,4,5;1,3;2,4;0,5\"")]
353353
pub struct CreateArgs {
@@ -553,7 +553,7 @@ pub struct CreateArgs {
553553
/// Required edge indices for RuralPostman (comma-separated, e.g., "0,2,4")
554554
#[arg(long)]
555555
pub required_edges: Option<String>,
556-
/// Bound parameter (lower bound for LongestCircuit; upper or length bound for BoundedComponentSpanningForest, GroupingBySwapping, LengthBoundedDisjointPaths, LongestCommonSubsequence, MultipleCopyFileAllocation, MultipleChoiceBranching, OptimalLinearArrangement, RootedTreeArrangement, RuralPostman, ShortestCommonSupersequence, or StringToStringCorrection)
556+
/// Bound parameter (upper or length bound for BoundedComponentSpanningForest, GroupingBySwapping, LengthBoundedDisjointPaths, MultipleChoiceBranching, RootedTreeArrangement, or StringToStringCorrection)
557557
#[arg(long, allow_hyphen_values = true)]
558558
pub bound: Option<i64>,
559559
/// Upper bound on expected retrieval latency for ExpectedRetrievalCost
@@ -568,9 +568,6 @@ pub struct CreateArgs {
568568
/// Upper bound on total inter-partition arc cost
569569
#[arg(long)]
570570
pub cost_bound: Option<i32>,
571-
/// Budget on total cost for CapacityAssignment
572-
#[arg(long)]
573-
pub cost_budget: Option<u64>,
574571
/// Budget on total delay penalty for CapacityAssignment
575572
#[arg(long)]
576573
pub delay_budget: Option<u64>,

0 commit comments

Comments
 (0)