Commit 917f577
authored
Mod-2 cut separator for zero-half cuts (#1726)
- Add general mod-2 zero-half separation. The separator finds combinations of constraint rows whose odd coefficients cancel modulo 2 while their aggregated right-hand side remains odd. Halving and rounding this aggregate yields a valid cut.
- Use sparse GF(2) elimination to find these row dependencies, then transform, lift, score, and add violated candidates to the cut pool.
- Propagate B&B timeouts to active node solves and improve work unit checks for some cuts.
- Update PaPILO pin for the coefficient-capacity guard fix.
On H100, two runs each:
Main vs mod-2
**Feasible** | 224.0 | 226.5 | +2.5
**Average error gap** | 12.285 | 11.655 | -0.630
**Optimal instances** | 76.5 | 77.5 | +1.0
**Root gap closed average** | 29.7518% | 31.0948% | +1.3429%
**Root gap closed shifted geomean** (+1) | 10.4875% | 11.1626% | +0.6750%
MIP gap unchanged, due to some cut passes taking longer.
Authors:
- Akif ÇÖRDÜK (https://github.com/akifcorduk)
Approvers:
- Alice Boucher (https://github.com/aliceb-nv)
- Nicolas L. Guidotti (https://github.com/nguidotti)
- Ramakrishna Prabhu (https://github.com/ramakrishnap-nv)
URL: #17261 parent a809fc6 commit 917f577
9 files changed
Lines changed: 1011 additions & 45 deletions
File tree
- cpp
- src
- branch_and_bound
- cuts
- tests/mip
- skills/cuopt-developer
- references
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
277 | 277 | | |
278 | 278 | | |
279 | 279 | | |
280 | | - | |
| 280 | + | |
281 | 281 | | |
282 | 282 | | |
283 | 283 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
1565 | 1565 | | |
1566 | 1566 | | |
1567 | 1567 | | |
1568 | | - | |
1569 | | - | |
| 1568 | + | |
| 1569 | + | |
| 1570 | + | |
1570 | 1571 | | |
1571 | 1572 | | |
1572 | 1573 | | |
| |||
1823 | 1824 | | |
1824 | 1825 | | |
1825 | 1826 | | |
| 1827 | + | |
| 1828 | + | |
| 1829 | + | |
| 1830 | + | |
1826 | 1831 | | |
1827 | 1832 | | |
1828 | 1833 | | |
| |||
1840 | 1845 | | |
1841 | 1846 | | |
1842 | 1847 | | |
| 1848 | + | |
| 1849 | + | |
| 1850 | + | |
1843 | 1851 | | |
1844 | 1852 | | |
1845 | 1853 | | |
| |||
1976 | 1984 | | |
1977 | 1985 | | |
1978 | 1986 | | |
1979 | | - | |
1980 | | - | |
| 1987 | + | |
1981 | 1988 | | |
1982 | 1989 | | |
1983 | 1990 | | |
| |||
1987 | 1994 | | |
1988 | 1995 | | |
1989 | 1996 | | |
| 1997 | + | |
| 1998 | + | |
| 1999 | + | |
| 2000 | + | |
1990 | 2001 | | |
1991 | 2002 | | |
1992 | 2003 | | |
| |||
2044 | 2055 | | |
2045 | 2056 | | |
2046 | 2057 | | |
2047 | | - | |
| 2058 | + | |
| 2059 | + | |
2048 | 2060 | | |
2049 | 2061 | | |
2050 | 2062 | | |
| |||
2063 | 2075 | | |
2064 | 2076 | | |
2065 | 2077 | | |
2066 | | - | |
| 2078 | + | |
| 2079 | + | |
2067 | 2080 | | |
2068 | 2081 | | |
2069 | 2082 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
6 | 6 | | |
7 | 7 | | |
8 | 8 | | |
| 9 | + | |
9 | 10 | | |
10 | 11 | | |
11 | 12 | | |
| |||
0 commit comments