Generating mixed integer programming instances with challenging properties Simon Bowly University of Melbourne AMSI Optimise June 20, 2019 Simon Bowly Generating mixed integer programming instances
Outline Feature Performance Space Space Algorithm Simon Bowly Generating mixed integer programming instances
Outline Feature Performance Space Space Algorithm Give an overview of... MIP solvers (in particular branching strategies) Generating new instances using evolutionary algorithms Characteristics of the generated instances Simon Bowly Generating mixed integer programming instances
MIP/Polyhedra Mixed Integer Program c T x maximize subject to Ax ≤ b x ≥ 0 some or all x i integral Simon Bowly Generating mixed integer programming instances
MIP Solvers Mixed Integer Program c T x maximize subject to Ax ≤ b x ≥ 0 some or all x i integral Many interacting components make up a MIP solver: LP solvers Presolvers Branching rules Cutting planes Node selection rules Primal heuristics Domain propagation Parallelisation Simon Bowly Generating mixed integer programming instances
MIP Solvers Mixed Integer Program c T x maximize subject to Ax ≤ b x ≥ 0 some or all x i integral Many interacting components make up a MIP solver: LP solvers Presolvers Branching rules Cutting planes Node selection rules Primal heuristics Domain propagation Parallelisation Simon Bowly Generating mixed integer programming instances
Branching Strategies Simon Bowly Generating mixed integer programming instances
Branching Strategies Simon Bowly Generating mixed integer programming instances
Branching Strategies Simon Bowly Generating mixed integer programming instances
Branching Strategies Cheap Expensive Large Tree Small Tree Strong Most/Least Pseudocosts Branching Infeasible Simon Bowly Generating mixed integer programming instances
Branching Strategies Cheap Expensive Large Tree Small Tree Strong Most/Least Pseudocosts Branching Infeasible To conduct a branching study . . . Disable cuts beyond the root node Provide the optimal solution (Linderoth and Savelsbergh, 1999) Simon Bowly Generating mixed integer programming instances
Evolving Instances Genetic algorithms Population based metaheuristic with fitness selection Crossover is the key search operator Previous applications to instance generation Finding worst-case bounds for sorting algorithm performance (Cotta and Moscato, 2003). Exposing strengths and weaknesses of heuristics (van Hemert, 2006; Langdon and Poli, 2007). Simon Bowly Generating mixed integer programming instances
Evolving Instances How can we narrow the search space? Constructor L C f-LP Mapped MIP Search Restrict search to feasible, bounded problems. Simon Bowly Generating mixed integer programming instances
Evolving Instances Dual programs c T x b T y max min A T y − r = c s.t. Ax + s = b ⇐ ⇒ s.t. x , s ≥ 0 y , r ≥ 0 Optimality conditions ( x , s ) and ( y , r ) feasible to primal and dual x i r i = 0 ∀ i y j s j = 0 ∀ j Construction b = Ax + s c = A T y − r Simon Bowly Generating mixed integer programming instances
Evolving Instances Uniform row crossover: a 11 a 1 n b 11 b 1 n . . . . . . a 21 a 2 n b 21 b 2 n . . . . . . a 31 a 3 n b 31 b 3 n . . . . . . a 21 a 2 n a 11 a 1 n . . . . . . b 21 b 2 n b 31 b 3 n . . . . . . a 31 a 3 n b 11 b 1 n . . . . . . Multi-objective NSGA-II algorithm (Deb et al., 2002) Small instances - 50 integer variables and 50 constraints fullstrong and relpscost branching strategies in SCIP 6.0.0 Simon Bowly Generating mixed integer programming instances
Performance Discriminating Instances 1200 1000 800 Relpscost Nodes 600 Source Random 400 200 0 10 20 30 40 50 60 70 80 FullStrong Nodes Simon Bowly Generating mixed integer programming instances
Performance Discriminating Instances 10000 8000 6000 Relpscost Nodes Source Random Full Strong Relpscost 4000 2000 0 0 20 40 60 80 100 120 140 FullStrong Nodes Simon Bowly Generating mixed integer programming instances
Properties of Generated Instances Simon Bowly Generating mixed integer programming instances
Properties of Generated Instances 250 120 200 100 Relpscost Nodes / FullStrong Nodes 80 150 FullStrong Nodes 60 100 40 50 20 0 0.0 0.2 0.4 0.6 0.8 Polyhedral Flatness Simon Bowly Generating mixed integer programming instances
Takeaways Evolutionary generation allows us to search performance space by manipulating instances. Small instances can be generated which expose performance differences in fundamental components. Branching is just one facet of MIP solver performance - there’s more of the performance space to explore. Simon Bowly Generating mixed integer programming instances
References Cotta, C. and Moscato, P. (2003). A mixed evolutionary-statistical analysis of an algorithm’s complexity. Applied Mathematics Letters , 16(1):41–47. Deb, K., Pratap, A., Agarwal, S., and Meyarivan, T. (2002). A fast and elitist multiobjective genetic algorithm: NSGA-II. IEEE transactions on evolutionary computation , 6(2):182–197. Langdon, W. and Poli, R. (2007). Evolving Problems to Learn About Particle Swarm Optimizers and Other Search Algorithms. IEEE Transactions on Evolutionary Computation , 11(5):561–578. Linderoth, J. T. and Savelsbergh, M. W. P. (1999). A Computational Study of Search Strategies for Mixed Integer Programming. INFORMS Journal on Computing , 11(2):173–187. van Hemert, J. (2006). Evolving Combinatorial Problem Instances That Are Difficult to Solve. Evolutionary Computation , 14(4):433–462. Simon Bowly Generating mixed integer programming instances
MATILDA Simon Bowly Generating mixed integer programming instances
MATILDA Simon Bowly Generating mixed integer programming instances
MATILDA Simon Bowly Generating mixed integer programming instances
Recommend
More recommend