DMOR Branch and bound. Integer programming Modelling logical constraints and making them linear: – Conjuction – Disjunction – Implication – Logical constraints.

Slides:



Advertisements
Similar presentations
Algorithm Design Methods (I) Fall 2003 CSE, POSTECH.
Advertisements

Integer Linear Programming
Branch-and-Bound Technique for Solving Integer Programs
BU Decision Models Integer_LP1 Integer Optimization Summer 2013.
Solving IPs – Cutting Plane Algorithm General Idea: Begin by solving the LP relaxation of the IP problem. If the LP relaxation results in an integer solution,
1 Chapter 11 Here we see cases where the basic LP model can not be used.
Traveling Salesperson Problem
Pure, Mixed-Integer, Zero-One Models
Branch-and-Bound In this handout,  Summary of branch-and-bound for integer programs Updating the lower and upper bounds for OPT(IP) Summary of fathoming.
Types of Algorithms.
EE 553 Integer Programming
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis SCIP Workshop at ZIB October 2007.
Water Resources Development and Management Optimization (Integer Programming) CVEN 5393 Mar 11, 2013.
Branch & Bound Algorithms
Branch and Bound Searching Strategies
Integer Programming and Branch and Bound Brian C. Williams November 15 th, 17 th, 2004 Adapted from slides by Eric Feron, , 2002.
Branch and Bound Similar to backtracking in generating a search tree and looking for one or more solutions Different in that the “objective” is constrained.
Computational Methods for Management and Economics Carla Gomes
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis in Mixed Integer Programming.
1 Branch and Bound Searching Strategies 2 Branch-and-bound strategy 2 mechanisms: A mechanism to generate branches A mechanism to generate a bound so.
Branch and Bound Algorithm for Solving Integer Linear Programming
Backtracking.
LP formulation of Economic Dispatch
Daniel Kroening and Ofer Strichman Decision Procedures An Algorithmic Point of View Deciding ILPs with Branch & Bound ILP References: ‘Integer Programming’
Integer programming Branch & bound algorithm ( B&B )
LINEAR PROGRAMMING SIMPLEX METHOD.
Decision Procedures An Algorithmic Point of View
1.3 Modeling with exponentially many constr.  Some strong formulations (or even formulation itself) may involve exponentially many constraints (cutting.
Operations Research Assistant Professor Dr. Sana’a Wafa Al-Sayegh 2 nd Semester ITGD4207 University of Palestine.
Types of IP Models All-integer linear programs Mixed integer linear programs (MILP) Binary integer linear programs, mixed or all integer: some or all of.
Integer Programming Key characteristic of an Integer Program (IP) or Mixed Integer Linear Program (MILP): One or more of the decision variable must be.
MILP algorithms: branch-and-bound and branch-and-cut
1 Chapter 4: Integer and Mixed-Integer Linear Programming Problems 4.1 Introduction to Integer and Mixed-Integer Linear Programming 4.2 Solving Integer.
WOOD 492 MODELLING FOR DECISION SUPPORT
Applications of Dynamic Programming and Heuristics to the Traveling Salesman Problem ERIC SALMON & JOSEPH SEWELL.
CSE 589 Part VI. Reading Skiena, Sections 5.5 and 6.8 CLR, chapter 37.
15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes.
Branch-and-Cut Valid inequality: an inequality satisfied by all feasible solutions Cut: a valid inequality that is not part of the current formulation.
Divide and Conquer Optimization problem: z = max{cx : x  S}
Integer Programming (정수계획법)
Types of Algorithms. 2 Algorithm classification Algorithms that use a similar problem-solving approach can be grouped together We’ll talk about a classification.
M Tech Project – First Stage Improving Branch-And-Price Algorithms For Solving 1D Cutting Stock Problem Soumitra Pal [ ]
Branch and Bound Algorithms Present by Tina Yang Qianmei Feng.
Chapter 2. Optimal Trees and Paths Combinatorial Optimization
Integer Programming, Branch & Bound Method
> Operational Research >> Integer Programming >>> Branch and Bound method
Konrad-Zuse-Zentrum für Informationstechnik Berlin (ZIB) Tobias Achterberg Conflict Analysis in Mixed Integer Programming.
Discrete Optimization MA2827 Fondements de l’optimisation discrète Material from P. Van Hentenryck’s course.
Water Resources Development and Management Optimization (Integer and Mixed Integer Programming) CVEN 5393 Mar 28, 2011.
Integer Programming An integer linear program (ILP) is defined exactly as a linear program except that values of variables in a feasible solution have.
Signal processing and Networking for Big Data Applications: Lecture 9 Mix Integer Programming: Benders decomposition And Branch & Bound NOTE: To change.
The CPLEX Library: Mixed Integer Programming
6.5 Stochastic Prog. and Benders’ decomposition
Introduction to Operations Research
5.2 Mixed Integer Linear Programming
1.3 Modeling with exponentially many constr.
Integer Linear Programming
Integer Programming (정수계획법)
1.3 Modeling with exponentially many constr.
Integer Programming (정수계획법)
Backtracking and Branch-and-Bound
Integer Linear Programming
5.2 Mixed Integer Linear Programming
6.5 Stochastic Prog. and Benders’ decomposition
Branch-and-Bound Algorithm for Integer Program
Integer LP: Algorithms
Branch-and-Bound Technique for Solving Integer Programs
5.2 Mixed Integer Linear Programming
Discrete Optimization
Presentation transcript:

DMOR Branch and bound

Integer programming Modelling logical constraints and making them linear: – Conjuction – Disjunction – Implication – Logical constraints for binary variables implication disjunction exclusive disjunction – Fixed costs modelling Question: Is it OK to just round an LP solution to the nearest integer to get the solution of the integer program? – Branch and bound algorithm (Divide and conquer)

Stepwise linear objective function

Binary variables Introducing constraints where w 1 and w 2 are binary

Stepwise linear objective function A) B) C)

Branch and bound algorithm - idea Three decision variables x1 (integer-valued) and two binary variables x2 and x3. Constraints: 1 ≤ x 1 ≤ 3, 0 ≤ x2 ≤ 1, 0 ≤ x 3 ≤ 1 Full enumeration tree Instead of building the whole tree up front, build it successively starting from the root. Develop only those branches which are most promising at any given step. Most promising is determined by estimating bounds on the best objective function value given current information which can be achieved by developing a given node further.

Basic concepts Branching Bounding – fathoming Prunning Concepts: node – each partial or complete solution leaf node – complete solution bud node – partial solution feasible or infeasible bounding function – estimation method for bud nodes, should be optimistic branching, growing, expanding nodes – a process of creating child nodes for a bud node incumbent Node selection policy Best-first / global-best node selection Depth-first Breadth-first Variable selection policy Bud prunning rules Algoritym termination rules

Example – an assignment problem Meaning of the nodes in a tree: – Partial or complete assignement of people to tasks Node selection policy: global best Variable selection policy: choose the next task in a natural order 1 to 4 Bounding function: for unassigned tasks choose the best unassigned person, even if she were to be assigned too more than one tasks Algorithm termination rule: when the objective function value for an incumbent solution is better or equal to the objective function value for all bud nodes Fathoming: a solution generated by the bounding function is feasible if each task is assigned to a different person

How do the bounding function values come about? Look at the first stage bud node A All solutions represented by this node can be denoted by A??? – Actual value of assigning person A to task 1 is equal to 9 – The best yet unassigned person for task 2 is C, value = 1 – The best yet unassigned person for task 3 is D, value = 2 – The best yet unassigned person for task 4 is C, value = 2 Bounding function solution is ACDC with a total value of =14. – The best objective function value of A??? is14. It is not a feasible solution because person C is assigned to 2 tasks. Person A is the only actually assigned person.

Creating a tree First stage: root Second stage: Node C??? is fathomed – the first incumbent feasible solution CBDA=13 We can then prune node A???, with bounding function value of 14. Two bud nodes which are hope for improvement: B??? and D??? – global best: we choose D??? Prunned nodes have broken edges Feasible nodes have bold edges Prunned feasible nodes have broken and bold edges

Building a tree Third stage: There are no new feasible solutions, so the incumbent solution does not change. New nodes cannot be prunned by comparing with the current incumbent solution or fathomed We choose the global best from among B??? (9), DA?? (12), DB?? (10) oraz DC?? (12) So B??? it is

Building a tree Fourth stage: We fathom two nodes BA?? and BC?? A new incumbent feasible solution is BCDA=12 We prune the previous incumbent CBDA BA?? Is feasible, but we prune it by comparison with a new incumbent solution We prune nodes DA?? i DC?? by comparing them with the incumbent solution If we wanted to find ALL optimal solutions and not only one we can later analyze it further We are left with only one bud node DB??.

Building a tree Fifth stage: DBAC has better value than the incumbent solution, so we replace it and prune the incumbent DBCA is pruned by comparing it with the incumbent solution There are no more bud nodes to expand, so we terminate We analyzed 13 out of 24 nodes For bigger problems it gives a real acceleration

A good bounding function is a key Travelling salesman problem: visit each city exactly once and come back to where you started Assume we have a partial solution (bold) Smart bounding function: a minimal spanning tree on the starting and the ending node of the current partial solution and the unvisited nodes

Branch and bound algorithm for mixed integer problems (Dakin’s algorithm) The following integer programming problem is given:

Solving an LP

Divide into two subproblems excluding the current nonfeasible solution.

The two subproblems solved as LP

Successively divide and solve an LP

L 3 ignored since it is not feasible

We continue until we get an integer solution We can stop the procedure at L 5 if we want to be at most 10% from the minimum (second best)

Cutting planes

Gomory cuts