SBB: A New Solver for Mixed Integer Nonlinear Programming



Similar documents
Solving convex MINLP problems with AIMMS

Chapter 13: Binary and Mixed-Integer Programming

Cloud Branching. Timo Berthold. joint work with Domenico Salvagnin (Università degli Studi di Padova)

Automated Performance Testing and Analysis. Armin Pruessner GAMS Development Corporation

Introduction: Models, Model Building and Mathematical Optimization The Importance of Modeling Langauges for Solving Real World Problems

GAMS, Condor and the Grid: Solving Hard Optimization Models in Parallel. Michael C. Ferris University of Wisconsin

TOMLAB - For fast and robust largescale optimization in MATLAB

Discrete Optimization

4.6 Linear Programming duality

Column Generation in GAMS Extending the GAMS Branch-and-Cut-and-Heuristic (BCH) Facility

Dantzig-Wolfe bound and Dantzig-Wolfe cookbook

CPLEX Tutorial Handout

Using diversification, communication and parallelism to solve mixed-integer linear programs

Quality Assurance For Mathematical Modeling Systems

How to speed-up hard problem resolution using GLPK?

Noncommercial Software for Mixed-Integer Linear Programming

A Constraint Programming based Column Generation Approach to Nurse Rostering Problems

Branch-and-Price Approach to the Vehicle Routing Problem with Time Windows

IBM ILOG CPLEX for Microsoft Excel User's Manual

A Branch and Bound Algorithm for Solving the Binary Bi-level Linear Programming Problem

Scheduling Home Health Care with Separating Benders Cuts in Decision Diagrams

Recovery of primal solutions from dual subgradient methods for mixed binary linear programming; a branch-and-bound approach

Proximal mapping via network optimization

A Reference Point Method to Triple-Objective Assignment of Supporting Services in a Healthcare Institution. Bartosz Sawik

Integrating Benders decomposition within Constraint Programming

GAMS Productivity - Performance - Reliability

Solving NP Hard problems in practice lessons from Computer Vision and Computational Biology

ON SOLVING THE PROGRESSIVE PARTY PROBLEM AS A MIP

5 INTEGER LINEAR PROGRAMMING (ILP) E. Amaldi Fondamenti di R.O. Politecnico di Milano 1

Linear Programs: Variables, Objectives and Constraints

Global Optimization with GAMS/LGO Introduction, Usage, and Applications

Simplified Benders cuts for Facility Location

A Column-Generation and Branch-and-Cut Approach to the Bandwidth-Packing Problem

24. The Branch and Bound Method

A progressive method to solve large-scale AC Optimal Power Flow with discrete variables and control of the feasibility

for Algebraic Modeling Systems?

Analysis of Algorithms I: Optimal Binary Search Trees

INTEGER PROGRAMMING. Integer Programming. Prototype example. BIP model. BIP models

Optimization Modeling for Mining Engineers

Nonlinear Optimization: Algorithms 3: Interior-point methods

Locating and sizing bank-branches by opening, closing or maintaining facilities

Improving Market Clearing Software Performance to Meet Existing and Future Challenges MISO s Perspective

5.1 Bipartite Matching

3.1 Solving Systems Using Tables and Graphs

Linear Programming. March 14, 2014

Using computing resources with IBM ILOG CPLEX

A Continuous-Time Formulation for Scheduling Multi- Stage Multi-product Batch Plants with Non-identical Parallel Units

Integrated Multi-Echelon Supply Chain Design with Inventories under Uncertainty: MINLP Models, Computational Strategies

A Weighted-Sum Mixed Integer Program for Bi-Objective Dynamic Portfolio Optimization

In this paper we present a branch-and-cut algorithm for

Equilibrium computation: Part 1

Modeling and Solving the Capacitated Vehicle Routing Problem on Trees

Linear Programming for Optimization. Mark A. Schulze, Ph.D. Perceptive Scientific Instruments, Inc.

The Gurobi Optimizer

Single machine models: Maximum Lateness -12- Approximation ratio for EDD for problem 1 r j,d j < 0 L max. structure of a schedule Q...

Strategic planning in LTL logistics increasing the capacity utilization of trucks

Introduction to Linear Programming (LP) Mathematical Programming (MP) Concept

Full and Complete Binary Trees

Mixed integer programming methods for supply chain optimization

Analysis of Binary Search algorithm and Selection Sort algorithm

Duality in General Programs. Ryan Tibshirani Convex Optimization /36-725

Branch and Cut for TSP

On a Railway Maintenance Scheduling Problem with Customer Costs and Multi-Depots

Duality of linear conic problems

Using the analytic center in the feasibility pump

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. !-approximation algorithm.

Binary Heaps * * * * * * * / / \ / \ / \ / \ / \ * * * * * * * * * * * / / \ / \ / / \ / \ * * * * * * * * * *

How the European day-ahead electricity market works

Lecture 11: 0-1 Quadratic Program and Lower Bounds

The truck scheduling problem at cross-docking terminals

Dynamic programming formulation

On the effect of forwarding table size on SDN network utilization

Operations: search;; min;; max;; predecessor;; successor. Time O(h) with h height of the tree (more on later).

Linear Program Solver

AIMMS User s Guide - Math Program Inspector

! Solve problem to optimality. ! Solve problem in poly-time. ! Solve arbitrary instances of the problem. #-approximation algorithm.

Scheduling Jobs and Preventive Maintenance Activities on Parallel Machines

From Last Time: Remove (Delete) Operation

Linear Programming: Chapter 11 Game Theory

Two objective functions for a real life Split Delivery Vehicle Routing Problem

Big Data Optimization at SAS

Fundamentals and Recent Developments of the GAMS System

LocalSolver: black-box local search for combinatorial optimization

Welcome to GAMS 1. Jesper Jensen TECA TRAINING ApS This version: September 2006

A NEW LOOK AT CONVEX ANALYSIS AND OPTIMIZATION

Transcription:

SBB: A New Solver for Mixed Integer Nonlinear Programming Michael R. Bussieck GAMS Development Corp. Arne S. Drud ARKI Consulting & Development A/S OR2001, Duisburg

Overview! SBB = Simple Branch & Bound! Introduction: The MINLP Model! The B&B Algorithm! The SBB Design Criteria and Implementation! Pseudo Cost Variable Selection! Computational Experiments! Conclusions and Future Work

The MINLP Model! Min or max f(x,y) s.t. g(x,y) = b l < x < u continuous li < y < ui integer! For convenience we only discuss Min! SBB handles also: SOS1, SOS2, SemiContinuous, and SemiInteger Variables! Integrality Constraints on y removed: RMINLP! A Node is the RMINLP model with tightened bounds on y

The B&B Algorithm Yes Solve RMINLP Initialize/Store In a Node Table Is the Node Table empty? Select a Node, remove from Table, and Solve Infeasible or Obj worse than Best? Integer Solution? Select a fractional discrete Variable. Create/store 2 nodes with Tighter Infeasible Bounds Unbounded Infeasible Integer Yes Yes Report and Stop Report and Stop Store Solution Update Best Remove Nodes With worse Obj

Local/Global Optimization Issues! Nodes solved with an NLP Local Optimization Algorithm. Potential Problems are:! Search Tree can incorrectly be cut off:! A node is declared Infeasible even though it is only locally infeasible and there exist feasible regions.! A node is fathomed because the objective for the node is a poor approximation for the global optimum for the node.! Problems will occur if the NLP solver fails! RMINLP model is convex in both x and y Global Optimum

Design Objectives! Use any existing GAMS NLP solver! CONOPT, MINOS, SNOPT! PATHNLP, CPLEXSLP! Handle solver failures! Help against incorrect infeasibilities! Report information on non-convexities

Implementation - Concept GAMS Process Model Files Solution Files Solver Process SBB Process Revised Model Files RMINLP Solution Files NLP Solver Process

Efficient SBB Implementation GAMS Process Model Files Solution Files Solver Process SBB Process Bound Revision File Node File Primal + Dual Solution RMINLP Solution Files NLP Solver Process

Solving the RMINLP Submodels Parent Node with known Optimal Solution Add One or a few bounds Child Node with few primal Infeasibilities, Dual Feasible

Some SBB Options! failseq solver1.opt1 solver2.opt2! Try solver1 with options defined by opt1. If it fails, try solver2 with options defined by opt2, etc. If all fail, ignore the node and continue the search! infeasseq level solver1.opt1 solver2.opt2! If a node with depth < level is locally infeasible then try solver1 with options defined by opt1, etc.! rootsolver solver.opt! Use a special solver/option pair for the root node! subiter/subres max! Avoid that one node uses all resources

Pseudo Cost Variable Selection! F set of binary variables with fractional value in optimum solution of RMINLP! F >1: Variable selection problem! Min/max (integer) infeasibility! Pseudo cost (PC)! Make important decisions early in the B&B tree! Measured by change in the objective of both children nodes! Reduces tree size! Improves the best bound quickly

PC: Definition and Selection! Definition:! obj* objective in parent node! x* optimum solution in parent node! Upbranch: Downbranch: x i = 1, c i = obj 1 obj x * i * x i = 0, c i = obj obj x * i *! We don t want '! i = arg max(min( i F c i, c ci = big, ci = i )) tiny

PC: Initialization and Update! Initialization Objective difference 0 1! Non linear???! Ask solver (CONOPT) to produce PC by solving 2 F NLPs internally (without overhead of I/O, presolve, scaling, )! Terminate early if c ci! Have large i and! Feasible and objdiff tiny! Update! nth update! After solving child node with! After x i ' = 0 * obj obj c ' i = c ' i + / * x i x i ' =1 n

Computational Experiments! MINLP Solver! SBB (Branch & Bound)! DICOPT (Outer Approximation)! FilterBB (B&B)! AlphaECP/mittlp (Extended Cutting Plane)! MINOPT/LINGO algorithms! MINLP Solver (Global Optimization)! BARON (Branch and Reduce)! OQGRG (Local NLP + Global Search)

Tests! GAMS/DICOPT! GAMS/SBB! Default, Pseudo Cost Variable Selection! FilterBB (AMPL Interface)! Test library MINLPLib! 139 MINLP models (existing collections + difficult client models)! http://www.gamsworld.org/minlp! DICOPT/FilterBB do not support SOS1/2 and semi continuous variables (7 models).! 10 minutes time limit (1GHz PC)! NLP: CONOPT, MIP: CPLEX

SBB/DICOPT Comparison Opt = optimal Int = integer solution Nis = no int solution

Quality/Speed SBB/DICOPT! Test on 80 models that were reported optimal in both cases.! All experiments on 1GHz Linux PC! Total times! SBB: 1572s! DICOPT: 258s

SBB/FilterBB Comparison

SBB/SBB-PC Comparison

Quality/Speed SBB-PC/SBB! Test on 103 models that were reported optimal in both cases.! Total times! Faster! SBB-PC: 1246s! SBB: 2187s! Slower! SBB-PC: 1874s! SBB: 599s

Global Solutions???! Test on 62 models for which the global optimum is known (Global optimization solver BARON)! Relative gap: obj obj rgap = obj glob glob 60 50 40 37 51 49 30 20 10 0 30 4 3 7 3 8 4 1 2 1 2 4 1 SBB-PC (58) SBB (55) FilterBB (45) <1% 10% 100% >100% DICOPT (49)

Future Work/Conclusions! Today MINLP is at the stage where MIP was long time ago 10-15 years ago! Model Formulations:! Recommendations for good formulations and warnings against bad formulations! Preprocessing! Algorithmic/Theoretical Work:! Preprocessing, Probing! Cut Generation,! Serious MINLP modelers/users need more than one MINLP solver (similar to NLP)