Symmetry in Mathematical Programming
Leo Liberti IBM Research, Yorktown Heights, USA LIX, Ecole Polytechnique, Palaiseau, France
OSE 2013, ˚ Abo University – p. 1/83
Symmetry in Mathematical Programming Leo Liberti IBM Research, - - PowerPoint PPT Presentation
Symmetry in Mathematical Programming Leo Liberti IBM Research, Yorktown Heights, USA LIX, Ecole Polytechnique, Palaiseau, France OSE 2013, Abo University p. 1/83 Summary 1. What is a symmetric mathematical program? 2. Detecting
Leo Liberti IBM Research, Yorktown Heights, USA LIX, Ecole Polytechnique, Palaiseau, France
OSE 2013, ˚ Abo University – p. 1/83
OSE 2013, ˚ Abo University – p. 2/83
OSE 2013, ˚ Abo University – p. 3/83
OSE 2013, ˚ Abo University – p. 4/83
OSE 2013, ˚ Abo University – p. 5/83
OSE 2013, ˚ Abo University – p. 6/83
T
OSE 2013, ˚ Abo University – p. 7/83
T
OSE 2013, ˚ Abo University – p. 8/83
OSE 2013, ˚ Abo University – p. 9/83
Tx
OSE 2013, ˚ Abo University – p. 10/83
Tx
OSE 2013, ˚ Abo University – p. 11/83
gap> A := [[1,1,1,0,0,0], [0,0,0,1,1,1], [1,0,0,1,0,0], [0,1,0,0,1,0], [0,0,1,0,0,1]];; gap> G := MatrixAutomorphisms(A); Group([(1,4)(2,5)(3,6), (2,3)(5,6), (1,2)(4,5)]) gap> StructureDescription(G); "D12"
OSE 2013, ˚ Abo University – p. 12/83
gap> for i in [1..Size(A)] do A[i] := Concatenation(A[i], [1]); od;; gap> A[1][7] := 2;; A[2][7] := 2;; gap> Add(A, [2,2,1,2,2,1,0]); gap> H := MatrixAutomorphisms(A); Group([ (1,4)(2,5)(3,6), (1,2)(4,5) ]) gap> StructureDescription(H); "C2 x C2" gap> IsSubgroup(G,H); true
OSE 2013, ˚ Abo University – p. 13/83
y + ey is represented by
OSE 2013, ˚ Abo University – p. 14/83
OSE 2013, ˚ Abo University – p. 15/83
Dreadnaut version 2.4 (32 bits). > n=10 g 2 3; 4 5; 6 7; 8 9; 6 8; 7 9. f=[0:1|2:5|6:9] x (4 5)(6 7)(8 9) !blue: variable permutations (2 3)(6 8)(7 9) !purple:
(0 1)(2 4)(3 5)(7 8) !red: constraint permutations (0, 1)(2, 4)(3, 5)(7, 8): can swap x7, x8 if at the same time swap operator nodes 2, 4 and 3, 5, and constraint nodes 0, 1
OSE 2013, ˚ Abo University – p. 16/83
x7, x8 can be swapped ⇒ ((1, 0, 1, 1) is a solution ⇒ (1, 1, 0, 1) is also a solution)
gap> L := [(4,5)(6,7)(8,9), (2,3)(6,8)(7,9), (10,1)(2,4)(3,5)(7,8)];; gap> G := Group(L);; GAP perms. start from 1 gap> Omg := Orbits(G); [ [ 1, 10 ], [ 2, 3, 4, 5 ], [6, 7, 8, 9 ]
gap> H := Action(G, Omg[3]); Group([ (1,3)(2,4), (1,2)(3,4), (2,3) ]) gap> LoadPackage("SONATA");; gap> IsIsomorphicGroup(H, G); true variable indices
OSE 2013, ˚ Abo University – p. 17/83
1 2 1 2 2 1
x = (2, 1, 0)
gx=(1,2,0) g=(1,2) gx=(0,2,1) g=(1,2,3) gx=(0,1,2) g=(1,3) gx=(1,0,2) g=(1,3,2) gx=(2,0,1) g=(2,3)
S3(2, 1, 0)T
OSE 2013, ˚ Abo University – p. 18/83
OSE 2013, ˚ Abo University – p. 19/83
Notation: Ω(G) = set of orbits of G
Projection operator: look at generators of DP as disjoint cycle products, only keep cycles acting on index variables
OSE 2013, ˚ Abo University – p. 20/83
solution group of P
OSE 2013, ˚ Abo University – p. 21/83
OSE 2013, ˚ Abo University – p. 22/83
OSE 2013, ˚ Abo University – p. 23/83
min
min
OSE 2013, ˚ Abo University – p. 24/83
10
Dreadnaut version 2.4 (32 bits). n=10 $=1 g 2 5 10; 3 4; 7 8; ; 6 9; 7 8; ; ; ; 7; x (2 5)(3 6)(4 9) f=[1|2 5|3|4|6|9|7 8|10] x () !
trivial group: no symmetries
OSE 2013, ˚ Abo University – p. 25/83
24 binary variables, 30 continuous variables ≥ 0 min
48
xi ∀i ∈ {25, . . . , 48}, j ∈ {49, 50, 51}, k ∈ {1, . . . , 8} xi − (ck − xj)2 ≥ 100(xi−24 − 1) ∀k ∈ {1, . . . 8}
3k
xi ≥ 1 ∀h ∈ {1, 2, 3} x52+h =
8
x3(k−1)+h ∀h ∈ {1, 2, 3} x48+hx52+h =
8
ckx3(k−1)+h (c1, . . . , c8) = (8, 8.5, 8.3, 8.7, 8.6, 9, 9.2, 9.5)
OSE 2013, ˚ Abo University – p. 26/83
$ ( cat elf.mod ; echo "option solver roseamp;" ; \ echo "option roseamp options \"mainsolver=14 symmgroupouttype=3\";" ; \ echo "solve;" ) | ampl > /dev/null 2>&1 $ mv Rsymmgroup out.gph elf.gph $ gph2dot elf.gph > elf.dot $ dot -Tgif elf.dot > elf.gif
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 55 24 56 25 58 26 28 57 27 59 29 60 30 61 31 65 32 62 33 63 34 36 64 35 66 37 67 38 69 39 41 68 40 70 42 71 43 72 44 76 45 73 46 74 47 49 75 48 77 50 78 51 80 52 54 79 53 81 55 82 56 83 57 87 58 84 59 85 60 62 86 61 88 63 89 64 91 65 67 90 66 92 68 93 69 94 70 98 71 95 72 96 73 75 97 74 99 76 100 77 102 78 80 101 79 103 81 104 82 105 83 109 84 106 85 107 86 88 108 87 110 89 111 90 113 91 93 112 92 114 94 115 95 116 96 120 97 117 98 118 99 101 119 100 121 102 122 103 124 104 106 123 105 125 107 126 108 127 109 131 110 128 111 129 112 114 130 113 132 115 133 116 135 117 119 134 118 136 120 137 121 138 122 142 123 139 124 140 125 127 141 126 143 128 144 129 146 130 132 145 131 147 133 148 134 149 135 153 136 150 137 151 138 140 152 139 154 141 155 142 157 143 145 156 144 158 146 159 147 160 148 164 149 161 150 162 151 153 163 152 165 154 166 155 168 156 158 167 157 169 159 170 160 171 161 175 162 172 163 173 164 166 174 165 176 167 177 168 179 169 171 178 170 180 172 181 173 182 174 186 175 183 176 184 177 179 185 178 187 180 188 181 190 182 184 189 183 191 185 192 186 193 187 197 188 194 189 195 190 192 196 191 198 193 199 194 201 195 197 200 196 202 198 203 199 204 200 208 201 205 202 206 203 205 207 204 209 206 210 207 212 208 210 211 209 213 211 214 212 215 213 219 214 216 215 217 216 218 218 217 220 219 221 220 223 221 223 222 222 224 224 225 225 226 226 230 227 227 228 228 229 231 229 230 231 232 232 233 234 234 236 233 235 235 237 236 238 237 239 241 240 238 241 239 242 244 240 243 242 245 243 246 245 247 249 244 248 246 250 247 251 248 252 252 253 249 254 250 255 257 251 256 253 258 254 259 256 260 262 255 261 257 263 258 264 259 265 263 266 260 267 261 268 270 262 269 264 271 265 272 267 273 275 266 274 268 276 269 277 270 278 274 279 271 280 272 281 283 273 282 275 284 276 285 278 286 288 277 287 279 289 280 290 281 291 285 292 282 293 283 294 296 284 295 286 297 287 298 289 299 301 288 300 290 302 291 303 292 304 296 305 293 306 294 307 309 295 308 297 310 298 311 300 312 314 299 313 301 315 302 316 303 317 307 318 304 319 305 320 322 306 321 308 323 309 324 311 325 327 310 326 312 328 313 329 314 330 318 331 315 332 316 333 335 317 334 319 320 336 322 337 324 338 326 339 328 340 330 341 332 342 334 343 336 344 346 321 345 348 323 347 350 325 349 352 327 351 354 329 353 356 331 355 358 333 357 360 335 359 361 362 337 338 363 340 364 342 365 344 366 346 367 348 368 350 369 352 370 354 371 373 339 372 375 341 374 377 343 376 379 345 378 381 347 380 383 349 382 385 351 384 387 353 386 388 389 355 356 390 358 391 360 392 362 393 364 394 366 395 368 396 370 397 372 398 400 357 399 402 359 401 404 361 403 406 363 405 408 365 407 410 367 409 412 369 411 414 371 413 415 416 373 417 418 419 374 420 421 422 375 423 424 425 376 426 427 428 377 429 430 431 378 432 433 434 379 435 436 437 380 438 439 440 381 441 382 442 384 443 386 444 388 445 390 446 392 447 394 448 396 449 451 383 450 453 385 452 455 387 454 457 389 456 459 391 458 461 393 460 463 395 462 465 397 464 398 466 399 467 401 468 403 469 405 470 407 471 409 472 411 473 413 474 476 400 475 478 402 477 480 404 479 482 406 481 484 408 483 486 410 485 488 412 487 490 414 489 415 491 416 492 418 493 420 494 422 495 424 496 426 497 428 498 430 499 501 417 500 503 419 502 505 421 504 507 423 506 509 425 508 511 427 510 513 429 512 515 431 514OSE 2013, ˚ Abo University – p. 27/83
$ mod2group elf.mod $ cat elf.gap | gap -b <permutation group with 2 generators> G := Group( [ ( 2, 3)( 5, 6)( 8, 9)( 11, 12)( 14, 15)( 17, 18)( 20, 21) ( 23, 24)( 26, 27)( 29, 30)( 32, 33)( 35, 36)( 38, 39)( 41, 42)( 44, 45) ( 47, 48)( 50, 51)( 53, 54), ( 1, 2)( 4, 5)( 7, 8)( 10, 11)( 13, 14) ( 16, 17)( 19, 20)( 22, 23)( 25, 26)( 28, 29)( 31, 32)( 34, 35)( 37, 38) ( 40, 41)( 43, 44)( 46, 47)( 49, 50)( 52, 53) ] ) gap> StructureDescription(G); "S3"
OSE 2013, ˚ Abo University – p. 28/83
OSE 2013, ˚ Abo University – p. 29/83
OSE 2013, ˚ Abo University – p. 30/83
OSE 2013, ˚ Abo University – p. 31/83
2
1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 2 0 1 2 3 2 2 4 3 2 7 4 3 0 5 3 3 6 3 4 7 3 7 8 1 8 9 1 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 2 1 1 8 2 2 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7 2 8 2 9 3 0 2 5 3 1 2 6 3 2 3 3 3 4 3 5 3 6 2 8 3 7 2 9 3 8 3 9 4 0 4 1 4 2 3 1 4 3 3 2 4 4 4 5 4 6 4 7 4 8 4 9 5 0 5 1 5 2 5 3 3 5 5 4 3 6 5 5 5 6 5 7 5 8 5 9 6 0 3 8 6 1 3 9 6 2 6 3 6 4 6 5 6 6 4 0 4 1 6 7 4 4 6 8 4 7 6 9 5 0 7 0 5 1 7 1 5 4 7 2 4 2 7 3 4 3 7 4 7 5 7 6 7 7 7 8 7 9 8 0 8 1 4 5 8 2 4 6 8 3 8 4 8 5 8 6 8 7 8 8 8 9 4 8 9 0 4 9 9 1 9 2 9 3 9 4 9 5 9 6 9 7 9 8 9 9 1 0 0 5 2 1 0 1 5 3 1 0 2 1 0 3 1 0 4 1 0 5 1 0 6 5 5 1 0 7 5 6 1 0 8 1 0 9 1 1 0 1 1 1 1 1 2 5 7 5 8 1 1 3 5 9 1 1 4 6 2 1 1 5 6 5 1 1 6 6 6 1 1 7 6 9 1 1 8 1 1 9 1 2 0 1 2 1 1 2 2 1 2 3 1 2 4 6 0 1 2 5 6 1 1 2 6 1 2 7 1 2 8 1 2 9 1 3 0 1 3 1 6 3 1 3 2 6 4 1 3 3 1 3 4 1 3 5 1 3 6 1 3 7 1 3 8 1 3 9 1 4 0 1 4 1 1 4 2 6 7 1 4 3 6 8 1 4 4 1 4 5 1 4 6 1 4 7 1 4 8 1 4 9 1 5 0 1 5 1 1 5 2 1 5 3 7 0 7 1 1 5 4 7 4 1 5 5 7 7 1 5 6 8 0 1 5 7 8 3 1 5 8 7 2 1 5 9 7 3 1 6 0 1 6 1 1 6 2 1 6 3 1 6 4 1 6 5 1 6 6 1 6 7 7 5 1 6 8 7 6 1 6 9 1 7 0 1 7 1 1 7 2 1 7 3 1 7 4 1 7 5 7 8 1 7 6 7 9 1 7 7 1 7 8 1 7 9 1 8 0 1 8 1 1 8 2 8 1 1 8 3 8 2 1 8 4 1 8 5 1 8 6 1 8 7 1 8 8 1 8 9 1 9 0 1 9 1 1 9 2 1 9 3 8 4 8 5 1 9 4 8 8 1 9 5 9 1 1 9 6 9 2 1 9 7 9 5 1 9 8 8 6 1 9 9 8 7 2 0 0 2 0 1 2 0 2 2 0 3 2 0 4 2 0 5 2 0 6 8 9 2 0 7 9 0 2 0 8 2 0 9 2 1 0 2 1 1 2 1 2 2 1 3 2 1 4 2 1 5 2 1 6 2 1 7 2 1 8 2 1 9 2 2 0 9 3 2 2 1 9 4 2 2 2 2 2 3 2 2 4 2 2 5 2 2 6 2 2 7 9 6 2 2 8 9 7 2 2 9 2 3 0 2 3 1 2 3 2 2 3 3 9 8 9 9 2 3 4 102 2 3 5 105 2 3 6 108 2 3 7 109 2 3 8 112 2 3 9 100 2 4 0 101 2 4 1 2 4 2 2 4 3 2 4 4 2 4 5 2 4 6 103 2 4 7 104 2 4 8 2 4 9 2 5 0 2 5 1 2 5 2 106 2 5 3 107 2 5 4 2 5 5 2 5 6 2 5 7 2 5 8 2 5 9 2 6 0 2 6 1 2 6 2 2 6 3 110 2 6 4 111 2 6 5 2 6 6 2 6 7 2 6 8 2 6 9 2 7 0 113 2 7 1 114 2 7 2 2 7 3 2 7 4 2 7 5 2 7 6 115 116 2 7 7 119 2 7 8 122 2 7 9 125 2 8 0 128 2 8 1 131 2 8 2 134 2 8 3 117 2 8 4 118 2 8 5 2 8 6 2 8 7 2 8 8 2 8 9 2 9 0 2 9 1 120 2 9 2 121 2 9 3 2 9 4 2 9 5 2 9 6 2 9 7 123 2 9 8 124 2 9 9 3 0 0 3 0 1 3 0 2 3 0 3 126 3 0 4 127 3 0 5 3 0 6 3 0 7 3 0 8 3 0 9 3 1 0 129 3 1 1 130 3 1 2 3 1 3 3 1 4 3 1 5 3 1 6 3 1 7 132 3 1 8 133 3 1 9 3 2 0 3 2 1 3 2 2 3 2 3 135 3 2 4 136 3 2 5 3 2 6 3 2 7 3 2 8 3 2 9 137 138 3 3 0 141 3 3 1 144 3 3 2 147 3 3 3 150 3 3 4 153 3 3 5 156 3 3 6 139 3 3 7 140 3 3 8 3 3 9 3 4 0 3 4 1 3 4 2 3 4 3 3 4 4 142 3 4 5 143 3 4 6 3 4 7 3 4 8 3 4 9 3 5 0 3 5 1 3 5 2 3 5 3 145 3 5 4 146 3 5 5 3 5 6 3 5 7 3 5 8 3 5 9 3 6 0 148 3 6 1 149 3 6 2 3 6 3 3 6 4 3 6 5 3 6 6 151 3 6 7 152 3 6 8 3 6 9 3 7 0 3 7 1 3 7 2 154 3 7 3 155 3 7 4 3 7 5 3 7 6 3 7 7 3 7 8 157 3 7 9 158 3 8 0 3 8 1 3 8 2 3 8 3 3 8 4OSE 2013, ˚ Abo University – p. 32/83
OSE 2013, ˚ Abo University – p. 33/83
OSE 2013, ˚ Abo University – p. 34/83
3 ⋉ PSL(3, 3)) ⋉ C2
1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 6 2 7
1 2 3 4 5 6 7 8 9 1 0 1 1 1 2 1 3 1 4 1 5 1 6 1 7 1 8 1 9 2 0 2 1 2 2 2 3 2 4 2 5 2 62 8
2 7 2 8 2 92 9
3 0 3 1 3 23 0
3 3 3 4 3 53 1
3 6 3 7 3 83 2
3 9 4 0 4 13 3
4 2 4 3 4 43 4
4 5 4 6 4 73 5
4 8 4 9 5 03 6
5 1 5 2 5 33 7
5 4 5 5 5 63 8
5 7 5 8 5 93 9
6 0 6 1 6 24 0
6 3 6 4 6 54 1
6 6 6 7 6 84 2
6 9 7 0 7 14 3
7 2 7 3 7 44 4
7 5 7 6 7 74 5
7 8 7 9 8 04 6
8 1 8 2 8 34 7
8 4 8 5 8 64 8
8 7 8 8 8 94 9
9 0 9 1 9 25 0
9 3 9 4 9 55 1
9 6 9 7 9 85 2
9 9 1 0 0 1 0 15 3
1 0 2 1 0 3 1 0 45 4
1 0 5 1 0 6 1 0 75 5
1 0 8 1 0 9 1 1 05 6
1 1 1 1 1 2 1 1 35 7
1 1 4 1 1 5 1 1 65 8
1 1 7 1 1 8 1 1 95 9
1 2 0 1 2 1 1 2 26 0
1 2 3 1 2 4 1 2 56 1
1 2 6 1 2 7 1 2 86 2
1 2 9 1 3 0 1 3 16 3
1 3 2 1 3 3 1 3 46 4
1 3 5 1 3 6 1 3 76 5
1 3 8 1 3 9 1 4 06 6
1 4 1 1 4 2 1 4 36 7
1 4 4 1 4 5 1 4 66 8
1 4 7 1 4 8 1 4 96 9
1 5 0 1 5 1 1 5 27 0
1 5 3 1 5 4 1 5 57 1
1 5 6 1 5 7 1 5 87 2
1 5 9 1 6 0 1 6 17 3
1 6 2 1 6 3 1 6 47 4
1 6 5 1 6 6 1 6 77 5
1 6 8 1 6 9 1 7 07 6
1 7 1 1 7 2 1 7 37 7
1 7 4 1 7 5 1 7 67 8
1 7 7 1 7 8 1 7 97 9
1 8 0 1 8 1 1 8 28 0
1 8 3 1 8 4 1 8 58 1
1 8 6 1 8 7 1 8 88 2
1 8 9 1 9 0 1 9 18 3
1 9 2 1 9 3 1 9 48 4
1 9 5 1 9 6 1 9 78 5
1 9 8 1 9 9 2 0 08 6
2 0 1 2 0 2 2 0 38 7
2 0 4 2 0 5 2 0 68 8
2 0 7 2 0 8 2 0 98 9
2 1 0 2 1 1 2 1 29 0
2 1 3 2 1 4 2 1 59 1
2 1 6 2 1 7 2 1 89 2
2 1 9 2 2 0 2 2 19 3
2 2 2 2 2 3 2 2 49 4
2 2 5 2 2 6 2 2 79 5
2 2 8 2 2 9 2 3 09 6
2 3 1 2 3 2 2 3 39 7
2 3 4 2 3 5 2 3 69 8
2 3 7 2 3 8 2 3 99 9
2 4 0 2 4 1 2 4 2100
2 4 3 2 4 4 2 4 5101
2 4 6 2 4 7 2 4 8102
2 4 9 2 5 0 2 5 1103
2 5 2 2 5 3 2 5 4104
2 5 5 2 5 6 2 5 7105
2 5 8 2 5 9 2 6 0106
2 6 1 2 6 2 2 6 3107
2 6 4 2 6 5 2 6 6108
2 6 7 2 6 8 2 6 9109
2 7 0 2 7 1 2 7 2110
2 7 3 2 7 4 2 7 5111
2 7 6 2 7 7 2 7 8112
2 7 9 2 8 0 2 8 1113
2 8 2 2 8 3 2 8 4114
2 8 5 2 8 6 2 8 7115
2 8 8 2 8 9 2 9 0116
2 9 1 2 9 2 2 9 3117
2 9 4 2 9 5 2 9 6118
2 9 7 2 9 8 2 9 9119
3 0 0 3 0 1 3 0 2120
3 0 3 3 0 4 3 0 5121
3 0 6 3 0 7 3 0 8122
3 0 9 3 1 0 3 1 1123
3 1 2 3 1 3 3 1 4124
3 1 5 3 1 6 3 1 7125
3 1 8 3 1 9 3 2 0126
3 2 1 3 2 2 3 2 3127
3 2 4 3 2 5 3 2 6128
3 2 7 3 2 8 3 2 9129
3 3 0 3 3 1 3 3 2130
3 3 3 3 3 4 3 3 5131
3 3 6 3 3 7 3 3 8132
3 3 9 3 4 0 3 4 1133
3 4 2 3 4 3 3 4 4134
3 4 5 3 4 6 3 4 7135
3 4 8 3 4 9 3 5 0136
3 5 1 3 5 2 3 5 3137
3 5 4 3 5 5 3 5 6138
3 5 7 3 5 8 3 5 9139
3 6 0 3 6 1 3 6 2140
3 6 3 3 6 4 3 6 5141
3 6 6 3 6 7 3 6 8142
3 6 9 3 7 0 3 7 1143
3 7 2 3 7 3 3 7 4144
3 7 5 3 7 6 3 7 7OSE 2013, ˚ Abo University – p. 35/83
OSE 2013, ˚ Abo University – p. 36/83
OSE 2013, ˚ Abo University – p. 37/83
Reduction to graph isomorphism: per-instance Problem ≡ infinite set of instances parametrized on
OSE 2013, ˚ Abo University – p. 38/83
KISSING NUMBER PROBLEM (decision version): Given integers D, N > 1, can N unit spheres (with pairwise empty interior intersection) be placed adjacent to a given unit sphere in Rd?
OSE 2013, ˚ Abo University – p. 39/83
The solution group has infinite (uncountable) cardinality: each feasible solution can be rotated by any angle in RD
OSE 2013, ˚ Abo University – p. 40/83
$ ./knpsymm 2 4 knp.mod ./knpsymm: group structure is C2 $ ./knpsymm 2 5 knp.mod ./knpsymm: group structure is C2 $ ./knpsymm 2 6 knp.mod ./knpsymm: group structure is C2 $ ./knpsymm 3 4 knp.mod ./knpsymm: group structure is S3 $ ./knpsymm 3 5 knp.mod ./knpsymm: group structure is S3 $ ./knpsymm 3 6 knp.mod ./knpsymm: group structure is S3
OSE 2013, ˚ Abo University – p. 41/83
ik + x2 jk − 2xikxjk)
ik +
ik −
OSE 2013, ˚ Abo University – p. 42/83
$ ./knpsymm 2 4 knpref.mod ./knpsymm: group structure is C2 x S4 $ ./knpsymm 2 5 knpref.mod ./knpsymm: group structure is C2 x S5 $ ./knpsymm 2 6 knpref.mod ./knpsymm: group structure is C2 x S6 $ ./knpsymm 3 4 knpref.mod ./knpsymm: group structure is S4 x S3 $ ./knpsymm 3 5 knpref.mod ./knpsymm: group structure is S5 x S3 $ ./knpsymm 3 6 knpref.mod ./knpsymm: group structure is S6 x S3
Conjecture becomes: GP ∼
(The reason: − is not commutative, × is)
OSE 2013, ˚ Abo University – p. 43/83
OSE 2013, ˚ Abo University – p. 44/83
Overall strategy: “remove symmetries”
don’t bother
can be useful
OSE 2013, ˚ Abo University – p. 45/83
making symmetric solutions infeasible problem reformulation of narrowing type symbolic algorithms acting on formulation use standard solvers to solve the reformulation marginal to good CPU improvement, worsening also possible but it’s basically for free
best results much more difficult to implement CPU time worsening still occurs Focus on reformulation methods (at least it’s free, right?)
OSE 2013, ˚ Abo University – p. 46/83
Recall the NLP example: min x6 + x7 + x8 + x9 c0 : x6x7 + x8x9 = 1 c1 : x6x8 + x7x9 = 1 x6, x7, x8, x9 ∈ [−1, 1] gap> G := Group((6,7)(8,9), (6,8)(7,9), (7,8));; Orbits(G)
[ [6, 7, 8, 9] ]
G is transitive on ω = {6, 7, 8, 9} ⇒ ∀i = j ∈ ω∃π ∈ G (π(i) = j) Thm. Whatever the structure of G, and for all i ∈ ω, there must be π ∈ G such that xπ(i) = min{xj | j ∈ ω}
Arbitrarily choose i = min ω
⇒ Cuts ∀j > i (xi ≤ xj) preserve at least one optimum
OSE 2013, ˚ Abo University – p. 47/83
By definition, all groups are transitive on their orbits The action of GP
limited to a single orbit ω subsumes a group GP [ω]
called a transitive constituent of GP GP [ω] is isomorphic to a subgroup of GP GP [ω] could be seen as the “projection of GP on ω” Cuts for P guaranteed to keep at least one symmetric optimum feasible are called symmetry breaking constraints (SBC) SBCs depend on the structure of GP [ω] By transitivity of GP [ω] on ω, ∀j ∈ ω (j > min ω → xmin ω ≤ xj) are SBCs for any GP [ω] In any orbit, one element must index a component with minimum value
OSE 2013, ˚ Abo University – p. 48/83
j | j ∈ ω} yields an optimum of P
In orbits where GP has a full symmetric action, we can impose an order
OSE 2013, ˚ Abo University – p. 49/83
OSE 2013, ˚ Abo University – p. 50/83
OSE 2013, ˚ Abo University – p. 51/83
In general, we cannot carry out the previous procedure “for all orbits” min
x∈{0,1}4 x1 + x2 + x3 + x4
x1 + 2x3 ≥ 1 x2 + 2x4 ≥ 1 x1 + x2 = x3 + x4
1 2 3 4
1 2 35
46
5 77
68
89
9 1 11 0
1 01 1
1 2 1 31 2
1 41 4
1 5 1 71 3
1 6 1 91 5
1 8Group GP = (1, 2)(3, 4) ∼ = C2, orbits Ω = {ω1 = {1, 2}, ω2 = {3, 4}} x∗ = (0, 1, 1, 0) is an optimum SBCs: ω1 ⇒ x1 ≤ x2 , ω2 ⇒ x3 ≤ x4 Both SBCs at the same time ⇒ both x∗, (1, 2)(3, 4)x∗ infeasible ⇒ problem becomes infeasible
OSE 2013, ˚ Abo University – p. 52/83
OSE 2013, ˚ Abo University – p. 53/83
x∈{0,1}|V |
{u,v}∈E
OSE 2013, ˚ Abo University – p. 54/83
Size/group BB tree: original BB tree: sb3 10 × 10 C4
2 ⋉ C2
3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 0
3 0 3 0 3 0 3 0 3 0 3 0 3 0 3 1 3 0 3 0
11 × 11 D2
8
3 5 3 5 3 6 3 5 3 6 3 5 3 6 3 6
3 6 3 5 3 6 3 7 3 5 3 6 3 5 3 5 3 6 3 6
12 × 12 C4
2 ⋉ C2
4 2 4 2 4 3 4 3 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2 4 2
4 2 4 2 4 2 4 2
OSE 2013, ˚ Abo University – p. 55/83
Mesh size BB tree: original BB tree: sb3 13 × 13 D2
8
5 0 5 0 5 0 5 0 5 0 4 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9 4 9 5 0 5 0
5 0 4 9 4 9 5 0 4 9 4 9 4 9 4 9
14 × 14 C4
2 ⋉ C2
5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 6 5 7 5 7 5 6 5 6 5 7 5 7
5 7 5 7 5 7 5 7 5 6 5 6 5 6 5 6 5 7 5 7 5 7 5 6 5 7 5 7 5 6 5 6 5 7 5 6
15 × 15 D2
8
6 3 6 3 6 4 6 3
6 3 6 3 6 4 6 3
OSE 2013, ˚ Abo University – p. 56/83
Mesh size BB tree: original BB tree: sb3 16 × 16 C4
2 ⋉ C2
7 2 7 3 7 3 7 2 7 2 7 2 7 2 7 3 7 2 7 2 7 3 7 2
17 × 17 D2
8
8 1 8 1 8 1 8 1 8 1 8 1 8 2 8 1 8 2 8 1
18 × 18 C4
2 ⋉ C2
9 0 9 1 9 1 9 1 9 0 9 1 9 0 9 0 9 0 9 0 9 0 9 0 9 0 9 1
OSE 2013, ˚ Abo University – p. 57/83
Mesh size BB tree: original BB tree: sb3 19 × 19 D2
8
9 9 9 9 9 9 9 9
9 9 9 9 9 9 9 9 9 9 1 0 0 1 0 0 9 9
20 × 20 C4
2 ⋉ C2
OSE 2013, ˚ Abo University – p. 58/83
Size/group BB tree: original BB tree: sb3 5 × 5 D2
10 ⋉ C2
6 × 6
(C2×(S2
3 ⋉C2))≀C2
7 × 7 D2
14 ⋉ C2
OSE 2013, ˚ Abo University – p. 59/83
Mesh size BB tree: original BB tree: sb3 8 × 8 |G| = 131072 2 orbits
1 6 6 4
9 × 9 D2
18 ⋉ C2
(1105 nodes) (677 nodes) 10 × 10 |G| = 320000 2 orbits
OSE 2013, ˚ Abo University – p. 60/83
Size/group BB tree: original BB tree: sb3 5 S3
5 5 5 5 5 5
5 5 5 5 5 7
6 S3
5 5 6 6 6 6 6 6 6 6 6 6 6 6 7 6
5 8 6 6 8 8 6 6 6 6
7 S3
OSE 2013, ˚ Abo University – p. 61/83
Mesh size BB tree: original BB tree: sb3 8 S3
9 S3
10 S3 (1593 nodes) (1271 nodes)
OSE 2013, ˚ Abo University – p. 62/83
Order/group BB tree: original BB tree: sb3 3 S2
3 ⋉ C2
4 4 4 4 4 4
4 6 4 4
4 (C2
2 × A2 4) ⋉ C2
OSE 2013, ˚ Abo University – p. 63/83
Order/group BB tree: original BB tree: sb3 4 D2
8 ⋉ C2
6 6 6 7 6 6 6 6 7 7 6 7
6 6 7 6 7 6 7 7 7 6 7 8 7 6 7 7
5 S3 × D10
7 8 8 8 8 8 8 8 8 8 8 8 9 9
6 (C2
2 × S2 3) ⋉ C2
OSE 2013, ˚ Abo University – p. 64/83
Order BB tree: original BB tree: sb3 7 S3 × D14
8 (D2
16) ⋉ C2
9 S3 × D18
OSE 2013, ˚ Abo University – p. 65/83
Sometimes the original formulation solves faster than the SBC reformulation
BB performance depends on several factors: LP solution, Branching policy, Cut generation, . . . Adjoining SBCs keeps objective function value by changes LP solution
SBC Feasible region
Forcing arbitrary choices in SBCs prevents BB from making the correct ones
OSE 2013, ˚ Abo University – p. 66/83
OSE 2013, ˚ Abo University – p. 67/83
Need to break more than just one orbit
OSE 2013, ˚ Abo University – p. 68/83
5 10
1
15
2
6
15
9
19
11
20
19
29
16
25
1
3 4 5
7
16
12
21
17
26
2
6 7 8
8
17
13
22
18
27
3
9 10 11 18
14
23 28
4
12 13 14 24
6 12
1
18
2
7
18
11
23
13
24
23
35
19
30
1
3 4 5
8
19
14
25
20
31
2
6 7 8
9
20
15
26
21
32
3
9 10 11
10
21
16
27
22
33
4
12 13 14 22
17
28 34
5
15 16 17 29
7 14
121
28
2113
2715
2827
4122
351
3 4 59
2216
2923
362
6 7 810
2317
3024
373
9 10 1111
2418
3125
384
12 13 1412
2519
3226
395
15 16 17 2620
33 406
18 19 20 34OSE 2013, ˚ Abo University – p. 69/83
sb3: breaks symmetries of only one orbit ω Need the “residual group” of symmetries acting outside of ω (i.e. on [n] ω) Let G act on X and Y ⊆ X
Point-wise stabilizer of Y w.r.t. G: subgroup GY ≤ G s.t. gy = y for all
g ∈ GY , y ∈ Y
pointwise
y1 y1 y2 y2 y3 y3 y4 y4 g Y X Gω
P ≤ GP : generate SBCs from the orbits of Gω P
OSE 2013, ˚ Abo University – p. 70/83
# covering problem on flower snark J4 gap> G := Group([(9,13)(11,15)(25,29)(27,31), (5,7)(9,11)(13,15)(21,23)(25,27)(29,31), (2,4)(9,13)(18,20)(25,29),(10,14)(12,16)(26,30)(28,32), (6,8)(10,12)(14,16)(22,24)(26,28)(30,32), (1,2)(3,4)(5,6)(7,8)(9,14)(10,13)(11,12)(15,16)(17,18) (19,20)(21,22)(23,24)(25,30)(26,29)(27,28)(31,32)]);; gap> Omg := Orbits(G);; List(Omg, function(v) return Size(v); end); [ 4, 4, 8, 4, 4, 8 ] gap> omega := Omg[1]; [ 1, 2, 4, 3 ]; # generate SBCs w.r.t. omega gap> G1 := Stabilizer(G, omega, OnTuples);; Omg := Orbits(G1);; gap> List(Omg, function(v) return Size(v); end); [ 2, 2, 4, 4, 2, 2, 4, 4 ] gap> omega := Omg[1]; [ 5, 7 ]; # generate SBCs w.r.t. omega gap> G2 := Stabilizer(G1, omega, OnTuples);; Omg := Orbits(G2);;
gap> G3 := Stabilizer(G2, omega, OnTuples);; Omg := Orbits(G3);;
gap> G4 := Stabilizer(G3, omega, OnTuples);; Omg := Orbits(G4);;
gap> G5 := Stabilizer(G4, omega, OnTuples); Group(()); # stop
OSE 2013, ˚ Abo University – p. 71/83
(a) replace G with Gω (b) adjoin g[ω](x) ≤ 0 to P (c) go to Step 2;
OSE 2013, ˚ Abo University – p. 72/83
13
11
51
55
25
97
OSE 2013, ˚ Abo University – p. 73/83
MILP
sb3 sbstab
Instance Incumbent Time Gap Status Incumbent Time Gap Status
air03
340160 1.66 0%
340160 1.06 0%
arki001
7.58e+06 30.35 0%
7.58e+06 13.73 0%
cod105r
34.04 0%
27.59 0%
cod83r
53.14 0%
27.04 0%
cod93r
3315.69 9.31% limit
4699.36 0%
flosn52 +∞
19.3 NA infeas
+∞
NA infeas
flosn60 +∞
69.79 NA infeas
+∞
NA infeas
jgt18 +∞
2.09 NA infeas
+∞
0.95 NA infeas
jgt30 +∞
419.56 NA infeas
+∞
131.7 NA infeas
mas74
11857.4 46.1 6.6876% limit 11801.2 458.81 0%
mas76
40005.4 62.29 0%
40005.4 48.73 0%
mered +∞
4.7 NA infeas
+∞
0.99 NA infeas
misc06
12850.8 0.48 0%
12850.8 0.29 0%
mitre
115155 0.88 0%
115155 0.64 0%
48 0%
48 0.02 0%
48 0%
48 0.01 0%
48 0.42 0%
48 0.2 0%
56 0.02 0%
56 0.02 0%
56 0.03 0%
56 0.04 0%
+∞
0.28 NA infeas
+∞
0.19 NA infeas
+∞
0.17 NA infeas
+∞
0.08 NA infeas
+∞
2394.37 NA infeas
+∞
288.64 NA infeas
p0201
7615 0.71 0%
7615 0.33 0%
p2756
3124 0.87 0%
3124 1.16 0%
protfold
3313.45 147.778% limit
6753.95 39.32% limit
qiu
46.35 0%
64.89 0%
rgn
82.2 0.34 0%
82.2 0.22 0%
OSE 2013, ˚ Abo University – p. 74/83
OSE 2013, ˚ Abo University – p. 75/83
(1)
j∈ω
OSE 2013, ˚ Abo University – p. 76/83
(2)
E.g. (1, 2)(3, 4) acting on [4] gives Ω = {{1, 2}, {3, 4}}
(3)
OSE 2013, ˚ Abo University – p. 77/83
(4)
(5) (5) row of Ax ≤ b and equal to (4) ⇒ (4) valid for P
(6)
OSE 2013, ˚ Abo University – p. 78/83
Burnside’s Lemma: ω orbit of G and f s.t. dom f = [n]: ∀j ∈ ω
f(π(j)) = |G| |ω|
f(ℓ)
(7)
Apply (7) to (6):
|G| |ω|
Aiℓxj ≤ |G|bi
(8)
⇒
|ω|
Aiℓ
≤ bi
(9)
⇒
Aω
i
xj ≤ bi,
(10)
where Aω
i = 1 |ω|( ℓ∈ω Aiℓ)
OSE 2013, ˚ Abo University – p. 79/83
j∈ω xj by zω and get:
i zω ≤ bi,
(11)
replace original system Ax ≤ b with (11) for each i ≤ m
j∈ω xj}
is an exact reformulation of P
OSE 2013, ˚ Abo University – p. 80/83
The relaxation is nontrivial only if |ω| > 1
The relaxation is nontrivial only if |Ω| > 1
Use automated learning to pick a good G
OSE 2013, ˚ Abo University – p. 81/83
Instance
LP
CPU BB:time2bnd
ca36243
49∗ 48 48 0.02
clique9 ∞∗
36
∞
0.06 0.17
cod105
limit
cod105r
24.12 28.36
cod83
16.78 9.54
cod83r
4.44 7.85
cod93
limit
cod93r
271.74 446.48
cov1075
20∗ 18 19 3.03 79.79
cov1076
45 43 43 2.78
cov954
30∗ 26 26 0.11
mered ∞∗
140
∞
0.15 3.37
O4 35 ∞∗
70 70 0.0
∞∗
48 48 0.01
∞∗
112
∞
0.1 265.92
∞∗
35 35 0.00
∞∗
63
∞
0.09 0.15
pa36243
0.01
sts27
18∗ 9 12 0.01
30∗ 15 15 0.00
sts63
45∗ 21 27 0.02 1.99
sts81
61 27 33 0.01 3.92
sts135
106 45 60 0.1 109.81
esc16b
292 220 222 3.58 1.84
OSE 2013, ˚ Abo University – p. 82/83
programs, JOGO, to appear
. Hansen, L. Liberti, On the impact of symmetry-breaking constraints on spatial
Branch-and-Bound for circle packing in a square, Discrete Applied Mathematics, 161:96-106, 2013
exploitation, Mathematical Programming A, 131:273-304, 2012
Integer Nonlinear Programming, IMA Series 154:263-286, Springer, New York, 2012
Faigle, R. Schrader, D. Herrmann (eds.), CTW10 Proceedings, 47-50, Köln, 2010.
C.A. Wang (eds.) COCOA08 Proceedings, LNCS 5165:328-338, Springer, New York, 2008
OSE 2013, ˚ Abo University – p. 83/83