Commit ef55301
authored
Fix adj_list check bug and improve clique cuts (#1386)
Improve clique cut generation by simplifing the conflict-graph clique table and fix complement-pair handling in clique cut construction drop the paired variable to form a valid fixing cut; detect contradictory variable/complement cliques as infeasible.
Fixes a bug of skipping the small adjacency-list cliques, now we use clique_table_t::empty() function to check all clique data structures.
The mip gap or gap glosed doesn't change significantly but we add on average 1.5 optimal solutions. Tested on 2 batches for main and this PR.
```
PR_1 -> total_instances: 240, total_feasible: 228, average_error_gap: 10.75, total_optimal: 77, avg_mip_gap: 0.3136, geomean_mip_gap: 0.1990, n_low_error: 129, average_gap_closed: 0.29
PR_2 -> total_instances: 240, total_feasible: 225, average_error_gap: 12.49, total_optimal: 78, avg_mip_gap: 0.3116, geomean_mip_gap: 0.1958, n_low_error: 126, average_gap_closed: 0.29
main_1 -> total_instances: 240, total_feasible: 224, average_error_gap: 13.29, total_optimal: 76, avg_mip_gap: 0.3054, geomean_mip_gap: 0.1938, n_low_error: 124, average_gap_closed: 0.29
main_2 -> total_instances: 240, total_feasible: 228, average_error_gap: 11.04, total_optimal: 76, avg_mip_gap: 0.3243, geomean_mip_gap: 0.2001, n_low_error: 124, average_gap_closed: 0.30
```
Authors:
- Akif ÇÖRDÜK (https://github.com/akifcorduk)
Approvers:
- Alice Boucher (https://github.com/aliceb-nv)
URL: #13861 parent 8e3cfe7 commit ef55301
12 files changed
Lines changed: 963 additions & 627 deletions
File tree
- benchmarks/linear_programming/cuopt
- cpp
- include/cuopt/linear_programming/mip
- src
- branch_and_bound
- cuts
- dual_simplex
- mip_heuristics
- presolve/conflict_graph
- utilities
- tests/mip
Large diffs are not rendered by default.
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
239 | 240 | | |
240 | 241 | | |
241 | 242 | | |
| 243 | + | |
| 244 | + | |
| 245 | + | |
| 246 | + | |
| 247 | + | |
| 248 | + | |
| 249 | + | |
| 250 | + | |
| 251 | + | |
| 252 | + | |
| 253 | + | |
| 254 | + | |
| 255 | + | |
| 256 | + | |
| 257 | + | |
| 258 | + | |
| 259 | + | |
| 260 | + | |
| 261 | + | |
| 262 | + | |
| 263 | + | |
| 264 | + | |
| 265 | + | |
| 266 | + | |
| 267 | + | |
| 268 | + | |
| 269 | + | |
| 270 | + | |
| 271 | + | |
| 272 | + | |
| 273 | + | |
| 274 | + | |
| 275 | + | |
| 276 | + | |
| 277 | + | |
| 278 | + | |
| 279 | + | |
242 | 280 | | |
243 | 281 | | |
244 | 282 | | |
| |||
534 | 572 | | |
535 | 573 | | |
536 | 574 | | |
| 575 | + | |
| 576 | + | |
| 577 | + | |
| 578 | + | |
| 579 | + | |
| 580 | + | |
| 581 | + | |
| 582 | + | |
| 583 | + | |
| 584 | + | |
| 585 | + | |
| 586 | + | |
| 587 | + | |
| 588 | + | |
| 589 | + | |
| 590 | + | |
537 | 591 | | |
538 | 592 | | |
539 | 593 | | |
540 | 594 | | |
| 595 | + | |
541 | 596 | | |
542 | 597 | | |
543 | 598 | | |
544 | 599 | | |
| 600 | + | |
545 | 601 | | |
546 | 602 | | |
| 603 | + | |
547 | 604 | | |
548 | | - | |
549 | | - | |
550 | | - | |
551 | | - | |
552 | | - | |
553 | | - | |
554 | | - | |
555 | | - | |
556 | | - | |
557 | | - | |
558 | | - | |
559 | | - | |
560 | | - | |
561 | | - | |
562 | 605 | | |
563 | 606 | | |
564 | 607 | | |
| |||
Lines changed: 21 additions & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
27 | 27 | | |
28 | 28 | | |
29 | 29 | | |
| 30 | + | |
| 31 | + | |
| 32 | + | |
| 33 | + | |
| 34 | + | |
| 35 | + | |
| 36 | + | |
| 37 | + | |
| 38 | + | |
| 39 | + | |
| 40 | + | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
| 46 | + | |
| 47 | + | |
| 48 | + | |
| 49 | + | |
| 50 | + | |
30 | 51 | | |
31 | 52 | | |
32 | 53 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
11 | 11 | | |
12 | 12 | | |
13 | 13 | | |
| 14 | + | |
| 15 | + | |
14 | 16 | | |
15 | 17 | | |
16 | 18 | | |
| |||
2342 | 2344 | | |
2343 | 2345 | | |
2344 | 2346 | | |
| 2347 | + | |
| 2348 | + | |
| 2349 | + | |
| 2350 | + | |
| 2351 | + | |
2345 | 2352 | | |
2346 | 2353 | | |
2347 | 2354 | | |
| |||
2460 | 2467 | | |
2461 | 2468 | | |
2462 | 2469 | | |
2463 | | - | |
| 2470 | + | |
2464 | 2471 | | |
2465 | 2472 | | |
2466 | 2473 | | |
| |||
2569 | 2576 | | |
2570 | 2577 | | |
2571 | 2578 | | |
| 2579 | + | |
| 2580 | + | |
| 2581 | + | |
| 2582 | + | |
| 2583 | + | |
2572 | 2584 | | |
2573 | 2585 | | |
2574 | 2586 | | |
| |||
2605 | 2617 | | |
2606 | 2618 | | |
2607 | 2619 | | |
| 2620 | + | |
| 2621 | + | |
| 2622 | + | |
| 2623 | + | |
| 2624 | + | |
| 2625 | + | |
| 2626 | + | |
| 2627 | + | |
| 2628 | + | |
2608 | 2629 | | |
2609 | 2630 | | |
2610 | 2631 | | |
| |||
2633 | 2654 | | |
2634 | 2655 | | |
2635 | 2656 | | |
| 2657 | + | |
| 2658 | + | |
| 2659 | + | |
| 2660 | + | |
| 2661 | + | |
| 2662 | + | |
| 2663 | + | |
2636 | 2664 | | |
| 2665 | + | |
| 2666 | + | |
| 2667 | + | |
2637 | 2668 | | |
2638 | 2669 | | |
2639 | 2670 | | |
| |||
2673 | 2704 | | |
2674 | 2705 | | |
2675 | 2706 | | |
| 2707 | + | |
| 2708 | + | |
| 2709 | + | |
2676 | 2710 | | |
2677 | 2711 | | |
2678 | 2712 | | |
| |||
2695 | 2729 | | |
2696 | 2730 | | |
2697 | 2731 | | |
| 2732 | + | |
| 2733 | + | |
| 2734 | + | |
| 2735 | + | |
| 2736 | + | |
| 2737 | + | |
2698 | 2738 | | |
2699 | 2739 | | |
| 2740 | + | |
| 2741 | + | |
| 2742 | + | |
| 2743 | + | |
2700 | 2744 | | |
2701 | 2745 | | |
2702 | 2746 | | |
| |||
0 commit comments