Commit d862480
authored
Add clique cuts (#937)
This PR adds clique cuts to the set of cuts we have. It uses the ideas from Preprocessing and Cutting Planes with Conflict Graphs, Brito et.al.
In a previous PR, I have added the clique table generation as a preprocessing step (currently doesn't change the problem). This PR builds on that by using the extended cliques during cut passes. At each cut pass, a subgraph induced by the fractinoal variables on the current relaxation solution is used to generate clique cuts. We want to generate the set of violated clique inequalities that have at least min violation (1e-6). The maximal cliques in the fractional subgraph is found by Bron Kerbosh dynamic programming algorithm. The found maximal cliques are extended with the suitable integer valued variables on the original conflict graph. The extension is guided by reduced cost of the variables at the current relaxation optimal. We try to extend the cliques with variables that have lower reduced cost. The reason is that it disturbs dual simplex less (causes fewer refactors and iterations for resolve). Also the variables with lower reduced costs are likely to be active in the next resolve. This also results in more dominant cliques preventing multiple smaller sized cliques in the next iterations.
Benchmark results:
MIP GAP wins/losses defined as at least 10% difference:
main wins (6):
Instance dir1 gap dir2 gap diff
app1-2 0.8077 1.1818 +0.3741
bab2 0.4148 0.6148 +0.2001
glass4 0.3333 0.4483 +0.1149
map16715-04 0.9269 1.4085 +0.4816
neos-4413714-turia 0.7027 0.8454 +0.1427
rail01 0.5476 0.7934 +0.2458
clique cuts wins (11):
Instance dir1 gap dir2 gap diff
30n20b8 0.7688 0.6667 +0.1021
bab6 0.9255 0.3611 +0.5643
buildingenergy 0.1706 0.0036 +0.1670
co-100 0.8410 0.7089 +0.1321
neos-3754480-nidda 20.3512 19.6495 +0.7017
neos-5188808-nattai 0.2032 0.0000 +0.2032
netdiversion 0.3710 0.1429 +0.2281
physiciansched3-3 0.2444 0.0269 +0.2175
rocII-5-11 1.0893 0.7762 +0.3131
satellites2-60-fs 13.5000 1.4167 +12.0833
sorrell3 9.5625 9.4375 +0.1250
Optimality wins/loses:
Wins
graphdraw-domain (443.68s)
neos-5188808-nattai (462.84s)
supportcase26 (537.66s)
Losses
dano3_3 (121.30s)
Time to optimality geomean (shifted geomean by 1.0):
on 50 common optimal instances
Common optimal instances: 50
Geometric mean of ratios (main/clique): 1.1925
Authors:
- Akif ÇÖRDÜK (https://github.com/akifcorduk)
- Alice Boucher (https://github.com/aliceb-nv)
Approvers:
- Chris Maes (https://github.com/chris-maes)
URL: #9371 parent 2b21118 commit d862480
22 files changed
Lines changed: 2649 additions & 360 deletions
File tree
- benchmarks/linear_programming/cuopt
- cpp
- include/cuopt/linear_programming
- mip
- src
- branch_and_bound
- cuts
- dual_simplex
- math_optimization
- mip_heuristics
- diversity
- lns
- recombiners
- presolve
- conflict_graph
- problem
- pdlp
- tests/mip
- datasets/mip
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
183 | 183 | | |
184 | 184 | | |
185 | 185 | | |
| 186 | + | |
| 187 | + | |
| 188 | + | |
| 189 | + | |
186 | 190 | | |
187 | 191 | | |
188 | 192 | | |
| |||
209 | 213 | | |
210 | 214 | | |
211 | 215 | | |
| 216 | + | |
212 | 217 | | |
213 | 218 | | |
214 | 219 | | |
| |||
413 | 418 | | |
414 | 419 | | |
415 | 420 | | |
416 | | - | |
| 421 | + | |
| 422 | + | |
| 423 | + | |
| 424 | + | |
| 425 | + | |
| 426 | + | |
| 427 | + | |
| 428 | + | |
| 429 | + | |
| 430 | + | |
417 | 431 | | |
418 | 432 | | |
419 | 433 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
64 | 64 | | |
65 | 65 | | |
66 | 66 | | |
| 67 | + | |
67 | 68 | | |
68 | 69 | | |
69 | 70 | | |
| |||
Lines changed: 1 addition & 0 deletions
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
93 | 93 | | |
94 | 94 | | |
95 | 95 | | |
| 96 | + | |
96 | 97 | | |
97 | 98 | | |
98 | 99 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
10 | 10 | | |
11 | 11 | | |
12 | 12 | | |
| 13 | + | |
13 | 14 | | |
14 | 15 | | |
15 | 16 | | |
| |||
241 | 242 | | |
242 | 243 | | |
243 | 244 | | |
244 | | - | |
| 245 | + | |
| 246 | + | |
245 | 247 | | |
246 | 248 | | |
| 249 | + | |
247 | 250 | | |
248 | 251 | | |
249 | 252 | | |
| |||
1967 | 1970 | | |
1968 | 1971 | | |
1969 | 1972 | | |
| 1973 | + | |
| 1974 | + | |
| 1975 | + | |
| 1976 | + | |
| 1977 | + | |
| 1978 | + | |
| 1979 | + | |
| 1980 | + | |
| 1981 | + | |
| 1982 | + | |
| 1983 | + | |
| 1984 | + | |
| 1985 | + | |
| 1986 | + | |
| 1987 | + | |
| 1988 | + | |
| 1989 | + | |
| 1990 | + | |
| 1991 | + | |
| 1992 | + | |
| 1993 | + | |
| 1994 | + | |
| 1995 | + | |
| 1996 | + | |
| 1997 | + | |
1970 | 1998 | | |
1971 | 1999 | | |
1972 | 2000 | | |
| |||
2002 | 2030 | | |
2003 | 2031 | | |
2004 | 2032 | | |
| 2033 | + | |
| 2034 | + | |
| 2035 | + | |
| 2036 | + | |
| 2037 | + | |
| 2038 | + | |
| 2039 | + | |
2005 | 2040 | | |
2006 | 2041 | | |
2007 | | - | |
2008 | | - | |
2009 | | - | |
2010 | | - | |
2011 | | - | |
2012 | | - | |
| 2042 | + | |
2013 | 2043 | | |
2014 | 2044 | | |
2015 | 2045 | | |
2016 | 2046 | | |
2017 | 2047 | | |
2018 | 2048 | | |
2019 | 2049 | | |
| 2050 | + | |
2020 | 2051 | | |
2021 | 2052 | | |
2022 | 2053 | | |
2023 | 2054 | | |
2024 | 2055 | | |
| 2056 | + | |
2025 | 2057 | | |
2026 | 2058 | | |
2027 | 2059 | | |
2028 | 2060 | | |
2029 | 2061 | | |
2030 | 2062 | | |
| 2063 | + | |
2031 | 2064 | | |
2032 | 2065 | | |
2033 | 2066 | | |
2034 | 2067 | | |
2035 | 2068 | | |
2036 | 2069 | | |
| 2070 | + | |
2037 | 2071 | | |
2038 | 2072 | | |
2039 | 2073 | | |
| |||
2064 | 2098 | | |
2065 | 2099 | | |
2066 | 2100 | | |
| 2101 | + | |
2067 | 2102 | | |
2068 | 2103 | | |
2069 | 2104 | | |
| |||
2078 | 2113 | | |
2079 | 2114 | | |
2080 | 2115 | | |
2081 | | - | |
2082 | | - | |
| 2116 | + | |
| 2117 | + | |
| 2118 | + | |
| 2119 | + | |
| 2120 | + | |
| 2121 | + | |
| 2122 | + | |
| 2123 | + | |
| 2124 | + | |
| 2125 | + | |
2083 | 2126 | | |
2084 | 2127 | | |
2085 | 2128 | | |
| |||
2090 | 2133 | | |
2091 | 2134 | | |
2092 | 2135 | | |
2093 | | - | |
| 2136 | + | |
| 2137 | + | |
2094 | 2138 | | |
2095 | 2139 | | |
2096 | 2140 | | |
| |||
2109 | 2153 | | |
2110 | 2154 | | |
2111 | 2155 | | |
2112 | | - | |
2113 | | - | |
2114 | | - | |
2115 | | - | |
2116 | | - | |
2117 | | - | |
2118 | | - | |
2119 | | - | |
2120 | | - | |
2121 | | - | |
| 2156 | + | |
| 2157 | + | |
| 2158 | + | |
| 2159 | + | |
| 2160 | + | |
| 2161 | + | |
| 2162 | + | |
| 2163 | + | |
| 2164 | + | |
| 2165 | + | |
| 2166 | + | |
| 2167 | + | |
| 2168 | + | |
| 2169 | + | |
| 2170 | + | |
| 2171 | + | |
| 2172 | + | |
| 2173 | + | |
| 2174 | + | |
2122 | 2175 | | |
2123 | 2176 | | |
2124 | 2177 | | |
| |||
2339 | 2392 | | |
2340 | 2393 | | |
2341 | 2394 | | |
2342 | | - | |
| 2395 | + | |
2343 | 2396 | | |
| 2397 | + | |
2344 | 2398 | | |
2345 | 2399 | | |
2346 | 2400 | | |
| |||
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
32 | 32 | | |
33 | 33 | | |
34 | 34 | | |
| 35 | + | |
35 | 36 | | |
| 37 | + | |
| 38 | + | |
36 | 39 | | |
37 | 40 | | |
| 41 | + | |
| 42 | + | |
| 43 | + | |
| 44 | + | |
| 45 | + | |
38 | 46 | | |
39 | 47 | | |
40 | 48 | | |
| |||
68 | 76 | | |
69 | 77 | | |
70 | 78 | | |
71 | | - | |
| 79 | + | |
| 80 | + | |
72 | 81 | | |
73 | 82 | | |
74 | 83 | | |
| |||
106 | 115 | | |
107 | 116 | | |
108 | 117 | | |
109 | | - | |
110 | | - | |
111 | 118 | | |
112 | 119 | | |
113 | 120 | | |
| |||
141 | 148 | | |
142 | 149 | | |
143 | 150 | | |
| 151 | + | |
| 152 | + | |
| 153 | + | |
144 | 154 | | |
145 | 155 | | |
146 | 156 | | |
| |||
0 commit comments