constraint integer programming
play

Constraint Integer Programming Leon Eifler, eifler@zib.de CO@Work, - PowerPoint PPT Presentation

Constraint Integer Programming Leon Eifler, eifler@zib.de CO@Work, 2020 Outline Constraint Integer Programming SCIPs Design The Solving Process of SCIP http://scipopt.org Leon Eifler (ZIB): Constraint Integer Programming 1 / 50 Outline


  1. Constraint Integer Programming Leon Eifler, eifler@zib.de CO@Work, 2020

  2. Outline Constraint Integer Programming SCIP’s Design The Solving Process of SCIP http://scipopt.org Leon Eifler (ZIB): Constraint Integer Programming 1 / 50

  3. Outline Constraint Integer Programming SCIP’s Design The Solving Process of SCIP http://scipopt.org Leon Eifler (ZIB): Constraint Integer Programming 2 / 50

  4. What is a Constraint Integer Program? Constraint Integer Program Objective function: ⊲ linear function c T x min s . t . x ∈ F Feasible set: ( x I , x C ) ∈ ❩ I × ❘ C ⊲ described by arbitrary constraints Remark: Variable domains: ⊲ real or integer values ◮ arbitrary objective or variables modeled by constraints Restriction: ⊲ When all integer variables are fixed, remaining subproblem is LP or NLP Leon Eifler (ZIB): Constraint Integer Programming 3 / 50

  5. An Example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = ( V , E ) and distances d e for all e ∈ E : Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. K 8 Leon Eifler (ZIB): Constraint Integer Programming 4 / 50

  6. An Example: the Traveling Salesman Problem Definition (TSP) Given a complete graph G = ( V , E ) and distances d e for all e ∈ E : Find a Hamiltonian cycle (cycle containing all nodes, tour) of minimum length. K 8 Leon Eifler (ZIB): Constraint Integer Programming 4 / 50

  7. TSP – Integer Programming Formulation Given x e ◮ complete graph G = ( V , E ) ◮ distances d e > 0 for all e ∈ E Binary variables ◮ x e = 1 if edge e is used K 8 Leon Eifler (ZIB): Constraint Integer Programming 5 / 50

  8. TSP – Integer Programming Formulation Given x e ◮ complete graph G = ( V , E ) ◮ distances d e > 0 for all e ∈ E Binary variables ◮ x e = 1 if edge e is used K 8 � min d e x e e ∈ E � subject to x e = 2 ∀ v ∈ V e ∈ δ ( v ) � x e ≥ 2 ∀ S ⊂ V , S � = ∅ e ∈ δ ( S ) x e ∈ { 0 , 1 } ∀ e ∈ E Leon Eifler (ZIB): Constraint Integer Programming 5 / 50

  9. TSP – Integer Programming Formulation Given x e ◮ complete graph G = ( V , E ) ◮ distances d e > 0 for all e ∈ E Binary variables ◮ x e = 1 if edge e is used K 8 � min d e x e e ∈ E � node degree subject to x e = 2 ∀ v ∈ V e ∈ δ ( v ) � x e ≥ 2 ∀ S ⊂ V , S � = ∅ e ∈ δ ( S ) x e ∈ { 0 , 1 } ∀ e ∈ E Leon Eifler (ZIB): Constraint Integer Programming 5 / 50

  10. TSP – Integer Programming Formulation Given x e ◮ complete graph G = ( V , E ) ◮ distances d e > 0 for all e ∈ E Binary variables ◮ x e = 1 if edge e is used K 8 � min d e x e e ∈ E � subject to x e = 2 ∀ v ∈ V e ∈ δ ( v ) � x e ≥ 2 ∀ S ⊂ V , S � = ∅ subtour elimination e ∈ δ ( S ) x e ∈ { 0 , 1 } ∀ e ∈ E Leon Eifler (ZIB): Constraint Integer Programming 5 / 50

  11. TSP – Integer Programming Formulation Given x e ◮ complete graph G = ( V , E ) ◮ distances d e > 0 for all e ∈ E Binary variables ◮ x e = 1 if edge e is used K 8 � min d e x e distance e ∈ E � subject to x e = 2 ∀ v ∈ V e ∈ δ ( v ) � x e ≥ 2 ∀ S ⊂ V , S � = ∅ e ∈ δ ( S ) x e ∈ { 0 , 1 } ∀ e ∈ E Leon Eifler (ZIB): Constraint Integer Programming 5 / 50

  12. What is a Constraint Integer Program? Constraint Integer Program Objective function: � min d e x e e ∈ E ⊲ linear function � s . t . x e = 2 ∀ v ∈ V e ∈ δ ( v ) nosubtour( x ) Feasible set: x e ∈ { 0 , 1 } ∀ e ∈ E ⊲ described by arbitrary constraints (CIP formulation of TSP) Variable domains: Single nosubtour constraint rules out ⊲ real or integer values subtours (e.g. by domain propagation). It may also separate subtour elimination Restriction: inequalities. ⊲ When all integer variables are fixed, remaining subproblem is LP or NLP Leon Eifler (ZIB): Constraint Integer Programming 6 / 50

  13. Mixed-Integer Nonlinear Programs (MINLPs) min c T x s.t. g k ( x ) ≤ 0 ∀ k ∈ [ m ] x i ∈ Z ∀ i ∈ I ⊆ [ n ] x i ∈ [ ℓ i , u i ] ∀ i ∈ [ n ] The functions g k ∈ C 1 ([ ℓ, u ] , R ) can be 0 100 200 200 300 10 200 0 0 5 − 200 − 1 1 − 1 1 convex or nonconvex Leon Eifler (ZIB): Constraint Integer Programming 7 / 50

  14. Constraint Integer Programming ◮ M ixed I nteger P rograms MIP Leon Eifler (ZIB): Constraint Integer Programming 8 / 50

  15. Constraint Integer Programming ◮ M ixed I nteger P rograms ◮ SAT isfiability problems MIP SAT Leon Eifler (ZIB): Constraint Integer Programming 8 / 50

  16. Constraint Integer Programming ◮ M ixed I nteger P rograms ◮ SAT isfiability problems MIP ◮ M ixed I nteger N on l inear P rograms MINLP SAT Leon Eifler (ZIB): Constraint Integer Programming 8 / 50

  17. Constraint Integer Programming ◮ M ixed I nteger P rograms ◮ SAT isfiability problems MIP ◮ M ixed I nteger N on l inear P rograms ◮ C onstraint P rogramming MINLP CP SAT Leon Eifler (ZIB): Constraint Integer Programming 8 / 50

  18. Constraint Integer Programming CIP ◮ M ixed I nteger P rograms ◮ SAT isfiability problems MIP ◮ M ixed I nteger N on l inear P rograms ◮ C onstraint P rogramming MINLP CP SAT ◮ C onstraint I nteger P rogramming Leon Eifler (ZIB): Constraint Integer Programming 8 / 50

  19. Quiz - Part I ◮ What is the key restriction that defines a CIP and why is it necessary? ◮ Think of a different problem that could benefit from a formulation as a CIP Leon Eifler (ZIB): Constraint Integer Programming 9 / 50

  20. Quiz - Part I ◮ What is the key restriction that defines a CIP and why is it necessary? When all integer variables are fixed, remaining problem is LP or NLP ◮ Think of a different problem that could benefit from a formulation as a CIP Leon Eifler (ZIB): Constraint Integer Programming 9 / 50

  21. Quiz - Part I ◮ What is the key restriction that defines a CIP and why is it necessary? When all integer variables are fixed, remaining problem is LP or NLP ◮ Think of a different problem that could benefit from a formulation as a CIP Possibilities: Linear ordering problem, Steiner tree problem, scheduling, ... Leon Eifler (ZIB): Constraint Integer Programming 9 / 50

  22. Outline Constraint Integer Programming SCIP’s Design The Solving Process of SCIP http://scipopt.org Leon Eifler (ZIB): Constraint Integer Programming 10 / 50

  23. Different Tasks – Different Plugins Different plugin classes are responsible of the following tasks. 1. Presolving and node propagation ◮ Constraint handlers ◮ Presolvers ◮ Propagators 2. Separation ◮ Constraint handlers ◮ Separators 3. Improving solutions ◮ Primal heuristics 4. Branching ◮ Constraint handlers ◮ Branching rules 5. Node selection ◮ Node selectors Leon Eifler (ZIB): Constraint Integer Programming 11 / 50

  24. Structure of SCIP mps opb implied bounds intobj gomory ppm lp flow mcf cover rlp fix odd cycle Reader cmir Separator sol cnf rapid clique learn probing sos intto cip trivial binary redcost ccg zpl zero strong implics half cg dualfix Presolver intdiving pseudo fracdiving Tree Pricer obj linesearch bound Impli feaspump diving cations root guided shift redcost diving int fixand infer shifting Propa gator cross local mutation vbound over dins branching restart dfs · · · Relax coef subnlp hybrid diving objpscost estim actcons diving diving SCIP Node Primal estimate octane selector Heuristic zi round oneopt dfs veclen pscost Display Variable diving diving bfs under twoopt rins rens Dialog Event cover default trivial rounding shift& prop rootsol trysol default diving default Cutpool Conflict simple shifting rounding allfull strong var bound xprs bound disjunc. full xor and strong count spx sos2 sols infer cumu sos1 ence lative LP Branch qso Constraint indi soc cator leastinf Handler relps none clp integral cost setppc mostinf quadr knap msk cpx atic sack random pscost or linking orbi linear tope logicor Leon Eifler (ZIB): Constraint Integer Programming 12 / 50

  25. Plugin based design SCIP core ◮ branching tree ◮ solution pool ◮ clique table ◮ variables ◮ cut pool ◮ implication graph ◮ conflict analysis ◮ statistics ◮ . . . Leon Eifler (ZIB): Constraint Integer Programming 13 / 50

  26. Plugin based design SCIP core ◮ branching tree ◮ solution pool ◮ clique table ◮ variables ◮ cut pool ◮ implication graph ◮ conflict analysis ◮ statistics ◮ . . . Plugins ◮ external callback objects ◮ interact with the framework through a very detailed interface Leon Eifler (ZIB): Constraint Integer Programming 13 / 50

  27. Plugin based design SCIP core ◮ branching tree ◮ solution pool ◮ clique table ◮ variables ◮ cut pool ◮ implication graph ◮ conflict analysis ◮ statistics ◮ . . . Plugins ◮ external callback objects ◮ interact with the framework through a very detailed interface ◮ SCIP knows for each plugin type: ◮ the number of available plugins ◮ priority defining the calling order (usually) ◮ SCIP does not know any structure behind a plugin ⇒ plugins are black boxes for the SCIP core Leon Eifler (ZIB): Constraint Integer Programming 13 / 50

Recommend


More recommend