Lecture 11: Tree Search © J. Christopher Beck 2008.

Slides:



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

Integer Optimization Basic Concepts Integer Linear Program(ILP): A linear program except that some or all of the decision variables must have integer.
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,
Lecture 6: Job Shop Scheduling Introduction
© J. Christopher Beck Lecture 17: Tabu Search.
EE 553 Integer Programming
Lecture 10: Integer Programming & Branch-and-Bound
Progress in Linear Programming Based Branch-and-Bound Algorithms
© J. Christopher Beck Lecture 15: CP Search.
Branch and Bound Searching Strategies
Job Scheduling Lecture 19: March 19. Job Scheduling: Unrelated Multiple Machines There are n jobs, each job has: a processing time p(i,j) (the time to.
© J. Christopher Beck Lecture 18: Timetabling with Workforce Capacity.
© J. Christopher Beck Lecture 11: Constraint Programming 1.
Branch and Bound Algorithm for Solving Integer Linear Programming
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’
1 Lecture 4 Maximal Flow Problems Set Covering Problems.
Decision Procedures An Algorithmic Point of View
Parsimony and searching tree-space Phylogenetics Workhop, August 2006 Barbara Holland.
Introduction to Job Shop Scheduling Problem Qianjun Xu Oct. 30, 2001.
© J. Christopher Beck Lecture 5: Project Planning 2.
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.
© J. Christopher Beck Lecture 13: Modeling in Constraint Programming.
WOOD 492 MODELLING FOR DECISION SUPPORT
1 Lagrangean Relaxation --- Bounding through penalty adjustment.
15.053Tuesday, April 9 Branch and Bound Handouts: Lecture Notes.
Lecture 9: Simplified Shifting Bottleneck
© J. Christopher Beck Lecture 25: Workforce Scheduling 3.
Branch and Bound Algorithms Present by Tina Yang Qianmei Feng.
5-1 Copyright © 2013 Pearson Education Integer Programming: The Branch and Bound Method Module C.
Stevenson and Ozgur First Edition Introduction to Management Science with Spreadsheets McGraw-Hill/Irwin Copyright © 2007 by The McGraw-Hill Companies,
© J. Christopher Beck Lecture 16: Local Search.
1 Chapter 6 Reformulation-Linearization Technique and Applications.
Solving IPs – Implicit Enumeration Similar to Binary IP Branch and Bound General Idea: Fixed variables – those for which a value has been fixed. Free Variable.
Lecture 3 Problem Solving through search Uninformed Search
MGTSC 352 Lecture 15: Aggregate Planning Altametal Case
Integer Programming An integer linear program (ILP) is defined exactly as a linear program except that values of variables in a feasible solution have.
5.3 Mixed-Integer Nonlinear Programming (MINLP) Models
Lecture 8: Dispatch Rules
The CPLEX Library: Mixed Integer Programming
EMGT 6412/MATH 6665 Mathematical Programming Spring 2016
Introduction to Operations Research
EMIS 8373: Integer Programming
Gomory Cuts Updated 25 March 2009.
5.3 Mixed Integer Nonlinear Programming Models
MIP Tools Branch and Cut with Callbacks Lazy Constraint Callback
Integer Programming (정수계획법)
1.206J/16.77J/ESD.215J Airline Schedule Planning
Integer Linear Programming
Instructors: Fei Fang (This Lecture) and Dave Touretzky
Number partitioning.
Lecture 9: Tabu Search © J. Christopher Beck 2005.
Function - when every x is paired to one y
Branch and Bound Searching Strategies
Integer Programming (정수계획법)
Solving Linear Equations
Topic 15 Job Shop Scheduling.
Backtracking and Branch-and-Bound
Branch and Bound Example
Cynthia Phillips (Sandia National Laboratories)
The Rich/Knight Implementation
Major Design Strategies
We have the following incomplete B&B tree:
Branch-and-Bound Algorithm for Integer Program
The Rich/Knight Implementation
Discrete Optimization
Linear Constrained Optimization
Presentation transcript:

Lecture 11: Tree Search © J. Christopher Beck 2008

Outline Generate-and-test Partition Relaxation Inference © J. Christopher Beck 2008

Readings P Ch B.3, B.4 J. Hooker, Integrated Methods for Optimization, 2007 © J. Christopher Beck 2008

Beyond Heuristics What if you want a guarantee of finding the optimal solution? Or, for a satisfaction problem, that no solution exists? Imagine a problem with 3 variables a, b, c є {0, 1} Simplest thing you can think of? © J. Christopher Beck 2008

Idea #1: Partitioning Easy problem Total Search Space © J. Christopher Beck 2008 Total Search Space

Idea #1: Partitioning Add constraint to the original problem to form a partition: P1, P2, P3, … Partitions are easier to solve Partitions, sub-partitions, sub-sub-partitions Solution is the best one from all the partitions © J. Christopher Beck 2008

Idea #1: Partitioning Imagine a problem with 3 variables a, b, c є {0, 1} minimize Branch a = 0 a = 1 b = 0 b = 1 b = 0 b = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 100 90 110 115 80 90 100 110 © J. Christopher Beck 2008

So … By now, if you are thinking about partitioning, you should have a question: (Hint: how many “states” in our generate-and-test example? how many in the tree search?) © J. Christopher Beck 2008

Idea #2: Relaxation Solve a problem that is easier than the real problem Relaxation: expand the search space to allow non-solutions to count as solutions Solution to relaxation is a bound on the real problem no real solution can be better © J. Christopher Beck 2008

Idea #2: Relaxation Imagine I have a way to calculate a lower bound on the cost at each node a = 0 a = 1 50 b = 0 b = 1 b = 0 70 80 Bound c = 0 c = 1 c = 0 85 95 80 100 90 80 © J. Christopher Beck 2008

Branch-and-Bound Partition + Relaxation Use heuristics to pick a decision to try (“branch”) partition Use lower bounds on solutions to “bound” the search solve a relaxation © J. Christopher Beck 2008

Partitioning + Relaxation Easy problem © J. Christopher Beck 2008 Total Search Space

MIP Solving (preview) Relaxation Partition solve LP, ignoring integrality gives lower bound (for a minimization problem) Partition add linear constraints to force a non-integral integer variable up or down use relaxation in branching! © J. Christopher Beck 2008

One of the constraints: b < a Idea #3: Inference Imagine a problem with 3 variables a, b, c є {0, 1} minimize One of the constraints: b < a a = 0 a = 1 b = 0 b = 1 b = 0 b = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 c = 0 c = 1 100 90 110 115 80 90 100 110 © J. Christopher Beck 2008

One of the constraints: b < a Idea #3: Inference Imagine a problem with 3 variables a, b, c є {0, 1} minimize One of the constraints: b < a a = 0 b = 0 b = 1 c = 0 c = 1 100 90 110 115 a = 1 You can infer: a = 0, b = 1 b = 0 c = 0 c = 1 b = 1 100 110 c = 0 c = 1 80 90 © J. Christopher Beck 2008

Idea #3: Inference Based on the constraints in the current partition, derive new constraints that are implied implied = must be true! Add new constraints to: tighten relaxation reduce partitioning © J. Christopher Beck 2008

Constraint Propagation (preview) 3 variables: v1, v2, v3 D1=D2= {1,3}, D3 = {1,2,3} all-different(v1,v2,v3) each variable must be a different value What can you infer? © J. Christopher Beck 2008

Partition + Relaxation + Inference Until the partition is easy to solve or has no solution: infer and add new constraints calculate relaxation form sub-partitions (Tree) Search = Partition + Relaxation + Inference © J. Christopher Beck 2008

A Very Simple Scheduling Problem Jobs Processing times J0R0[15]  J0R1[5] 1 J1R0[10]  J1R1[15] Draw complete branch-and-bound tree to minimize makespan Assume that the branches sequence a pair of operations Try J0Rx → J1Rx first © J. Christopher Beck 2008

Getting Started Take “left” branch first … … Jobs Processing times J0R0[15]  J0R1[5] 1 J1R0[10]  J1R1[15] Take “left” branch first J1R0  J0R0 J0R0  J1R0 ?? … … © J. Christopher Beck 2008

Bounding? Calculate a very simple lower bound at each node Jobs Processing times J0R0[15]  J0R1[5] 1 J1R0[10]  J1R1[15] Calculate a very simple lower bound at each node Which nodes will not be visited? © J. Christopher Beck 2008