Commit 66e9050
* 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- docs
- paper
- src
- problemreductions-cli
- src
- commands
- mcp
- tests
- src
- models
- graph
- misc
- set
- rules
- solvers
- customized
- ilp
- unit_tests
- models
- graph
- misc
- set
- rules
- solvers/customized
- tests/suites
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 changedLarge diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
56 | 56 | | |
57 | 57 | | |
58 | 58 | | |
59 | | - | |
| 59 | + | |
60 | 60 | | |
61 | 61 | | |
62 | 62 | | |
| |||
149 | 149 | | |
150 | 150 | | |
151 | 151 | | |
152 | | - | |
| 152 | + | |
153 | 153 | | |
154 | 154 | | |
155 | 155 | | |
| |||
353 | 353 | | |
354 | 354 | | |
355 | 355 | | |
356 | | - | |
357 | | - | |
| 356 | + | |
| 357 | + | |
358 | 358 | | |
359 | 359 | | |
360 | 360 | | |
361 | 361 | | |
362 | 362 | | |
363 | | - | |
| 363 | + | |
364 | 364 | | |
365 | 365 | | |
366 | 366 | | |
367 | | - | |
| 367 | + | |
368 | 368 | | |
369 | 369 | | |
370 | 370 | | |
| |||
516 | 516 | | |
517 | 517 | | |
518 | 518 | | |
519 | | - | |
| 519 | + | |
520 | 520 | | |
521 | 521 | | |
522 | 522 | | |
| |||
551 | 551 | | |
552 | 552 | | |
553 | 553 | | |
554 | | - | |
| 554 | + | |
555 | 555 | | |
556 | 556 | | |
557 | 557 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
218 | 218 | | |
219 | 219 | | |
220 | 220 | | |
221 | | - | |
| 221 | + | |
222 | 222 | | |
223 | 223 | | |
224 | 224 | | |
| |||
231 | 231 | | |
232 | 232 | | |
233 | 233 | | |
234 | | - | |
| 234 | + | |
235 | 235 | | |
236 | | - | |
| 236 | + | |
237 | 237 | | |
238 | 238 | | |
239 | 239 | | |
| |||
242 | 242 | | |
243 | 243 | | |
244 | 244 | | |
245 | | - | |
| 245 | + | |
246 | 246 | | |
247 | 247 | | |
248 | 248 | | |
249 | | - | |
| 249 | + | |
250 | 250 | | |
251 | | - | |
252 | | - | |
| 251 | + | |
| 252 | + | |
253 | 253 | | |
254 | 254 | | |
255 | 255 | | |
| |||
258 | 258 | | |
259 | 259 | | |
260 | 260 | | |
261 | | - | |
| 261 | + | |
262 | 262 | | |
263 | 263 | | |
264 | 264 | | |
| |||
272 | 272 | | |
273 | 273 | | |
274 | 274 | | |
275 | | - | |
| 275 | + | |
276 | 276 | | |
277 | 277 | | |
278 | 278 | | |
279 | 279 | | |
280 | | - | |
| 280 | + | |
281 | 281 | | |
282 | | - | |
283 | | - | |
284 | | - | |
285 | | - | |
| 282 | + | |
| 283 | + | |
| 284 | + | |
| 285 | + | |
286 | 286 | | |
287 | 287 | | |
288 | 288 | | |
289 | 289 | | |
290 | 290 | | |
291 | | - | |
| 291 | + | |
292 | 292 | | |
293 | 293 | | |
294 | 294 | | |
| |||
304 | 304 | | |
305 | 305 | | |
306 | 306 | | |
307 | | - | |
| 307 | + | |
308 | 308 | | |
309 | 309 | | |
310 | | - | |
| 310 | + | |
311 | 311 | | |
312 | 312 | | |
313 | 313 | | |
| |||
328 | 328 | | |
329 | 329 | | |
330 | 330 | | |
331 | | - | |
| 331 | + | |
332 | 332 | | |
333 | 333 | | |
334 | 334 | | |
| |||
347 | 347 | | |
348 | 348 | | |
349 | 349 | | |
350 | | - | |
| 350 | + | |
351 | 351 | | |
352 | 352 | | |
353 | 353 | | |
| |||
553 | 553 | | |
554 | 554 | | |
555 | 555 | | |
556 | | - | |
| 556 | + | |
557 | 557 | | |
558 | 558 | | |
559 | 559 | | |
| |||
568 | 568 | | |
569 | 569 | | |
570 | 570 | | |
571 | | - | |
572 | | - | |
573 | | - | |
574 | 571 | | |
575 | 572 | | |
576 | 573 | | |
| |||
0 commit comments