od integer programming large 2010

Upload: carolinarvsocn

Post on 22-Feb-2018

214 views

Category:

Documents


0 download

TRANSCRIPT

  • 7/24/2019 OD Integer Programming LARGE 2010

    1/67

    INTEGERPROGRAMMING

  • 7/24/2019 OD Integer Programming LARGE 2010

    2/67

    Integer Programming

    In many problems the decision variables must have

    integer values. Example: assign people, machines, and vehicles to

    activities in integer quantities.

    If this is the only deviation from linear programming,

    it is called an integer programming (IP) problem.

    If only somevariables are required to integer, the

    model is called a mixed integer programming (MIP)

    San Francisco Police Dep. problem is an IP problem. Wyndor Glass Co. problem could be an IP problem;

    how?

    264

  • 7/24/2019 OD Integer Programming LARGE 2010

    3/67

    Integer Programming

    In integer programming, divisibility assumption must

    be dropped. Another area of application is in problem involving

    yes-or-no decisions, which have binary variables.

    These IP problems are called binary integer

    programming (BIP) problems.

    A very small example of a typical BIP problem is given

    in the following.

    265

  • 7/24/2019 OD Integer Programming LARGE 2010

    4/67

    Prototype example

    California Manufacturing Company is considering expansion

    building a factory in Los Angeles, San Francisco or in both cities. One new warehouse can also be considered in a city where a

    new factory is being built. Maximum $10 million to invest.

    Objective: find feasible combination of alternatives that

    maximizes the total net present value.

    266

    Decision

    number

    Yes or no question Decision

    variable

    Net present

    value

    Capital

    required

    1 Build factory in Los Angeles? x1 $9 million $6 million

    2 Build factory in San Francisco? x

    2 $5 million $3 million3 Build warehouse in Los Angeles? x3 $6 million $5 million

    4 Build warehouse in San Francisco? x4 $4 million $2 million

  • 7/24/2019 OD Integer Programming LARGE 2010

    5/67

    Contingent decisions

    Mutually exclusive alternatives

    BIP model

    All decisions variables have the binary form:

    Z= total net present value of these decisions.

    Maximize Z= 9x1 + 5x2 + 6x3 + 4x4.

    Constraints:

    6x1 + 3x2 + 5x3 + 2x4 10

    x3 +x4 1

    x3 x1 and x4 x2xj is binary, forj = 1,2,3,4.

    267

    1 if decision is yes,1,2,3,4

    0 if decision is no,j

    jx j

    j

  • 7/24/2019 OD Integer Programming LARGE 2010

    6/67

    BIP models

    Groups of yes-or-no decision often constitute groups

    ofmutually exclusive alternatives: only onedecisionin the group can be yes.

    Occasionally, decisions of the yes-or-no type are

    contingent decisions: decision that depend upon

    previous ones.

    Software options for solving BIP, IP or MIP models:

    Excel

    LINGO/LINDO MPL/CPLEX

    268

  • 7/24/2019 OD Integer Programming LARGE 2010

    7/67

    BIP applications

    Investment analysis, such as the California Man. Co.

    Site select ion, of factories, warehouses, etc.

    Designing a product ion and dist ribut ion network, or

    more generally the entire global supply-chain.

    Dispatching shipments, scheduling routes, vehiclesand time period for departure and arrivals.

    Airline applicat ions, as e.g. fleet assignment and crew

    scheduling.

    Scheduling interrelated act ivit ies, asset divestures,etc.

    269

  • 7/24/2019 OD Integer Programming LARGE 2010

    8/67

    Formulation examples

    Example 1: making choices when decision variables

    are continuous. R&D Division ofGood Products Co. hasdeveloped three possible new products.

    Requirement 1: from the three, at mosttwo can be

    chosen to be produced.

    Each product can be produced in either of two plants.However, management has imposed a restriction:

    Requirement 2:just one of the two plants can be

    chosen as the producer of the new products.

    270

  • 7/24/2019 OD Integer Programming LARGE 2010

    9/67

    Example 1

    Objectives: choose the products, the plant and the

    production rates of the chosen products to maximizetotal profit.

    271

    Production time used for each unit

    produced

    Production time

    available per

    week

    Product 1 Product 2 Product 3

    Plant 1 3 hours 4 hours 2 hours 30 hours

    Plant 2 4 hours 6 hours 2 hours 40 hours

    Unit profit 5 7 3 (103 euros)

    Sale potential 7 5 9 (units per week)

  • 7/24/2019 OD Integer Programming LARGE 2010

    10/67

    Formulation of the problem

    Similar to a standard product mix problem, such as the Wyndor

    Glass Co. It is such a problem, if we drop the two restrictions and by

    requiring that a product uses production hours in both plants.

    Letx1,x2,x3 be the production rates of the respective products:

    272

    1 2 3Maximize 5 7 3Z x x x

    1 2 3

    1 2 3

    1

    2

    3 1 2 3

    3 4 2 30

    4 6 2 40

    75

    9, , , 0

    x x x

    x x x

    xx

    x x x x

    subject to

  • 7/24/2019 OD Integer Programming LARGE 2010

    11/67

    Formulation of the problem

    For the real problem, Requirement 1 add the

    constraint:Number of strictly positive variables (x1,x2,x3) must be 2

    This must be converted to an IP problem. It needs the

    introduction of auxiliary binary variables.

    Requirement 2 requires replacing the first twoconstraints to:

    must hold. This again requires an auxiliary binary

    variable.

    273

    1 2 3

    1 2 3

    Either 3 4 2 30

    or 4 6 2 40

    x x x

    x x x

  • 7/24/2019 OD Integer Programming LARGE 2010

    12/67

    Auxiliary binary variables

    For Requirement 1, three auxiliary binary variables (y1,

    y2,y3) are introduced:

    This is introduced in the model with the help of anextremely large positive numberM, adding the

    constraints:

    274

    1 if 0 can hold (can produce product )

    0 if 0 must hold (cannot produce product )

    j

    j

    j

    x jy

    x j

    1 1

    2 2

    3 3

    1 2 3 2

    is binary, for 1, 2,3.j

    x My

    x My

    x My

    y y y

    y j

  • 7/24/2019 OD Integer Programming LARGE 2010

    13/67

    Auxiliary binary variables

    For Requirement 2, another auxiliary binary variabley4

    is introduced:

    This add the constraints:

    275

    1 2 3

    4

    1 2 3

    1 if 4 6 2 40 must hold (choose Plant 1)

    0 if 3 4 2 30 must hold (choose Plant 2)

    x x xy

    x x x

    1 2 3 4

    1 2 3 4

    4

    3 4 2 30

    4 6 2 40 (1 )

    is binary

    x x x My

    x x x M y

    y

  • 7/24/2019 OD Integer Programming LARGE 2010

    14/67

    Complete model (MIP)

    276

    1 2 3

    1

    2

    3

    1 1

    2 2

    3 3

    1 2 3

    1 2 3 4

    1 2 3 4

    Maximize 5 7 3

    subject to 75

    9

    0

    00

    2

    3 4 2 30

    4 6 2 40

    and 0, for 1, 2,3

    is binary, for 1,2,3, 4

    i

    j

    Z x x x

    xx

    x

    x My

    x My

    x My

    y y y

    x x x My

    x x x My M

    x i

    y j

  • 7/24/2019 OD Integer Programming LARGE 2010

    15/67

    Solution

    MIP problem with 3 continuous and 4 binary variables.

    Optimal solution:y1 = 1,y2 = 0,y3 = 1,y4 = 1,x1 = 5.5,x2 = 0,x3 = 9.

    That is, choose products 1 and 3 to produce, choose

    Plant 2 for production, choose production rates of 5.5

    units per week for product 1 and 9 units per week for

    product 2.

    Resulting profit is 54500 per week.

    277

  • 7/24/2019 OD Integer Programming LARGE 2010

    16/67

    Example 2

    See Hilliers book (page 496). Profit from additional sales

    violates proportionality:

    278

  • 7/24/2019 OD Integer Programming LARGE 2010

    17/67

    Example: Southwestern Airways

    Southwestern Airways needs to assign three crews to

    cover all the upcoming flights. Table shows the flights in the first column.

    Other 12 columns show the 12 feasible sequences of flights

    for a crew.

    Numbers in each column indicate the order of the flights.

    Exactly three sequences must be chosen (one for each crew).

    More than one crew can be assigned to a flight, but it must

    be paid as if it was working.

    Last column show the cost of assigning a crew to a sequenceof flights.

    279

  • 7/24/2019 OD Integer Programming LARGE 2010

    18/67

    Data for Southwestern Airways

    280

    Feasible sequence of flights

    Flight 1 2 3 4 5 6 7 8 9 10 11 12

    1. San Francisco to Los Angeles 1 1 1 1

    2. San Francisco to Denver 1 1 1 1

    3. San Francisco to Seattle 1 1 1 1

    4. Los Angeles to Chicago 2 2 3 2 3

    5. Los Angeles to San Francisco 2 3 5 5

    6. Chicago to Denver 3 3 4

    7. Chicago to Seattle 3 3 3 3 4

    8. Denver to San Francisco 2 4 4 5

    9. Denver to Chicago 2 2 2

    10. Seattle to San Francisco 2 4 4 5

    11. Seattle to Los Angeles 2 2 4 4 2

    Cost (1000) 2 3 4 6 7 5 7 8 9 9 8 9

  • 7/24/2019 OD Integer Programming LARGE 2010

    19/67

    Formulation of the problem

    Objective: minimize the total cost for the three crews.

    12 feasible sequence of flights: 12 yes-or-no decisions:

    Should sequencejbe assigned to a crew?

    The 12 binary variables to represent the decisions are:

    281

    1 if sequence is assigned to a crew

    0 otherwisej

    jx

  • 7/24/2019 OD Integer Programming LARGE 2010

    20/67

    1 2 3 4 5 6 7 8 9

    10 11 12

    Minimize 2 3 4 6 7 5 7 8 9

    9 8 9

    Z x x x x x x x x x

    x x x

    and is binary, for 1,2, ,12jx j

    subject to1 4 7 10

    2 5 8 11

    3 6 9 12

    4 7 9 10 12

    1 6 10 11

    4 5 9

    7 8 10 11 12

    2 4 5 9

    5 8 11

    3 7 8 12

    6 9 10 11 1212

    1

    1 (SF to LA)

    1

    1

    1

    11

    1

    1

    1

    1

    1

    3 (assign three crewsjj

    x x x x

    x x x x

    x x x x

    x x x x x

    x x x xx x x

    x x x x x

    x x x x

    x x x

    x x x x

    x x x x x

    x

    )

    Formulation of the problem

    282

  • 7/24/2019 OD Integer Programming LARGE 2010

    21/67

    Solution

    One optimal solution is:

    x3 = 1 (assign sequence 3 to a crew)

    x4 = 1 (assign sequence 4 to a crew)

    x11 = 1 (assign sequence 11 to a crew)

    And all otherxj

    = 0.

    Total cost is 18000.

    Another optimal solution is: x1 =x5 =x12 = 1.

    283

  • 7/24/2019 OD Integer Programming LARGE 2010

    22/67

    Discussion

    This example belongs to a class called set covering

    problems, with a number of potential activities(e.g.flight sequences) and characteristics(e.g. flights).

    Si is the set of all activities that possess characteristici.

    A constraint is included for each characteristici:

    In set partitioning problems the constraint is

    284

    1j

    j

    j Sx

    1i

    j

    j S

    x

    l bl

  • 7/24/2019 OD Integer Programming LARGE 2010

    23/67

    Solving IP problems

    Integer problems are easy to solve?

    Difference to LP is that IP have far fewer solutions.

    IP problems have a finitenumber of feasible solutions.

    However:

    Finite numbers can be astronomically large! With n

    variables a BIP problem has 2n solutions, having

    exponential growth.

    LP assuresthat a CFP solution can be optimal,

    guaranteeing the remarkable efficiency of the simplex

    method. LP problems are much easier t o solve than IP

    problems.

    285

    l i bl

  • 7/24/2019 OD Integer Programming LARGE 2010

    24/67

    Solving IP problems

    Consequently, most IP algorithms incorporate the

    simplex method. This is called the LP relaxation. Sometimes, the solution of the LP problem isthe

    solution of the IP problem, such as:

    Minimum cost flow problem, including transportation

    problem, assignment problem, shortest -path problem

    and maximum f low problem.

    Special structures (see examples 2 and 3): mutually

    exclusive alternat ives, cont ingent decisionsor set-

    covering const raintscan also simplify the problem.

    286

    S l i I bl

  • 7/24/2019 OD Integer Programming LARGE 2010

    25/67

    Solving IP problems

    Primary determinants of computational complexity:

    1. number of integer variables,2. these variables are binaryor generalinteger variables,

    3. any special structure in the problem.

    This is in contrast to LP, where number of constraints

    is much more important than the number of

    variables.

    As IP problems are much more difficult than LP, we

    could apply LP and roundthe obtained solution...Yes??

    287

    E l 1

  • 7/24/2019 OD Integer Programming LARGE 2010

    26/67

    Example 1

    288

    2Minimize Z x

    1 2

    1 2

    1 2

    subject to 0.5

    3.5,

    and , 0, integers.

    x x

    x x

    x x

    E l 2

  • 7/24/2019 OD Integer Programming LARGE 2010

    27/67

    Example 2

    289

    1 2Minimize 5Z x x

    1 2

    1

    1 2

    subject to 10 20

    2

    and , 0, integers.

    x x

    x

    x x

    S l i IP bl

  • 7/24/2019 OD Integer Programming LARGE 2010

    28/67

    Solving IP problems

    Thus, a better approach to deal with IP problems that

    are too large to be solved exactly are heuristicalgorithms.

    Heuristics and metaheuristics are extremely efficient

    for very large problems, but do not guaranteeto find

    an optimal solution. These algorithms will be discussed further later.

    Most popular traditional method for solving IP

    problems is the branch-and-bound technique.

    290

    B h d b d li d t BIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    29/67

    Branch-and-bound applied to BIP

    Pure IP problems can consider some type of

    enumerat ion procedure. This should be done in a clever way such that only a

    tiny fraction of the feasible solutions is examined.

    Branch-and-bound with a divide to conquertechnique

    can be used.

    dividing (branching) the problem into smaller and

    smaller subproblems until it can be conquered

    conquering (fathoming) by boundinghow good the

    best solution can be. If no optimal solution in subset:

    discard it.

    291

    E l C lif i M f C

  • 7/24/2019 OD Integer Programming LARGE 2010

    30/67

    Example: California Manuf, Co.

    Recall prototype example:

    Maximize Z= 9x1 + 5x2 + 6x3 + 4x4

    subject to

    (1) 6x1 + 3x2 + 5x3 + 2x4 10

    (2) x3 + x4 1(3) x1 + x3 0

    (4) x2 + x4 0

    and

    (5) xj is binary, forj = 1, 2, 3, 4.

    292

    B hi

  • 7/24/2019 OD Integer Programming LARGE 2010

    31/67

    Branching

    Most straightforward way to divide the problem: fix

    the value of a variable at one set. e.g.x1 = 0 for one subset andx1 = 1 for another subset.

    Subproblem 1(fixx1 = 0):

    Maximize Z= 5x2 + 6x3 + 4x4

    subject to(1) 3x2 + 5x3 + 2x4 10

    (2) x3 + x4 1

    (3) x3 0

    (4) x2 + x4 0(5) xj is binary, forj = 2, 3, 4.

    293

    B hi

  • 7/24/2019 OD Integer Programming LARGE 2010

    32/67

    Branching

    Subproblem 2(fixx1 = 1):

    Maximize Z= 9 + 5x2 + 6x3 + 4x4

    subject to

    (1) 3x2 + 5x3 + 2x4 4

    (2) x3

    + x4

    1

    (3) x3 1

    (4) x2 + x4 0

    (5) xj is binary, forj = 2, 3, 4.

    294

    B hi

  • 7/24/2019 OD Integer Programming LARGE 2010

    33/67

    Branching

    Dividing (branching) into suproblems creates a tree

    with branches(arcs) for theAllnode. This is the solution tree or enumeration tree.

    Branching variable is the one used for branching.

    The branching continues or not after evaluating the

    subproblem.

    Other IP problems usually creates as many branches as

    needed.

    295

    B di

  • 7/24/2019 OD Integer Programming LARGE 2010

    34/67

    Bounding

    A boundis needed for the best feasible solution of the

    subproblem. Standard way is to perform a relaxation of the

    problem, e.g. by deletingone set of constraints that

    makes the problem difficult.

    Most common is to require integer variables, so LP

    relaxationis the most widely used.

    296

    Bounding in example

  • 7/24/2019 OD Integer Programming LARGE 2010

    35/67

    Bounding in example

    Example: for the whole problem, (5) is

    replaced byxj 1 andxj 0 forj=1, 2, 3, 4.Using simplex:

    (x1,x2,x3,x4) = (5/6, 1, 0, 1), with Z = 16.5

    Thus, Z 16.5 for all feasible solutions for BIPproblem. Can be rounded toZ 16 (why?)

    LP relaxation for subproblem 1:

    (x1,x2,x3,x4) = (0, 1, 0, 1), with Z = 9

    LP relaxation for subproblem 2:

    (x1,x2,x3,x4) = (1, 4/5, 0, 4/5), with Z = 16.5

    297

    Fathoming

  • 7/24/2019 OD Integer Programming LARGE 2010

    36/67

    Fathoming

    A subproblem can be conquered (fathomed, i.e.

    search tree is pruned) in three ways:1. When the optimal solution for the LP relaxation of a

    subproblem is integer, it must be optimal.

    Example: forx1=0, (x1,x2,x3,x4) = (0, 1, 0, 1), is integer.

    It must be stored as first incumbent (best feasible solutionfound so far) for the whole problem, along with value ofZ:

    Z* = value ofZ for first incumbent

    In the exampleZ* = 9.

    Subproblem 1 is solved, so it is fathomed (dismissed).

    298

    Fathoming

  • 7/24/2019 OD Integer Programming LARGE 2010

    37/67

    Fathoming

    2. AsZ* = 9, we should not consider subproblems with

    bound 9. Thus, a problem is fathomed whenboundZ*

    In Subproblem 2 that does not occur, the bound of16 is

    larger than 9. However, it can occur for descendants.

    As new incumbents with larger values ofZ* are found, itbecomes easier to fathom in this way.

    3. If the simplex method finds that a subproblems LP

    relaxation has no feasible solut ion, the subproblem

    has nofeasible solution and can dismissed.

    299

    Summary of fathoming tests

  • 7/24/2019 OD Integer Programming LARGE 2010

    38/67

    Summary of fathoming tests

    A subproblem is fathomed (dismissed) if

    Test 1: ItsboundZ*

    or

    Test 2: Its LP relaxation has no feasible solutions

    or Test 3: Optimal solution for its LP relaxation is

    integer.

    If better, this solution becomes new incumbent, and

    Test 1 is reapplied for all unfathomed subproblems.

    300

    Fathoming in example

  • 7/24/2019 OD Integer Programming LARGE 2010

    39/67

    Fathoming in example

    Result of applying the three tests is in figure below.

    Subproblem 1 is fathomed by test 3.

    301

    BIP branch and bound algorithm

  • 7/24/2019 OD Integer Programming LARGE 2010

    40/67

    BIP branch-and-bound algorithm

    Initialization:SetZ* = . Apply bounding, fathoming

    and optimization steps described below to the wholeproblem. If not fathomed, perform iteration.

    Steps for each it erat ion:

    1. Branching: Among the remaining subproblems, select

    the one created most recently. Branch from this nodeby fixing the next variable as either 0 or 1.

    2. Bounding: For each new subproblem, obtain its

    boundby applying its LP relaxation.

    Round downZfor resulting optimal solution.

    302

    BIP branch and bound algorithm

  • 7/24/2019 OD Integer Programming LARGE 2010

    41/67

    BIP branch-and-bound algorithm

    3. Fathoming: For each new subproblem, apply the

    three fathoming tests, and discard subproblems thatare fathomed by the tests.

    Optimalit y test :Stop when there are no remaining

    subproblems. The current incumbent is optimal.

    Otherwise, perform another iteration.

    303

    Completing example

  • 7/24/2019 OD Integer Programming LARGE 2010

    42/67

    Completing example

    Iteration 2. Remaining subproblems are forx1 = 1.

    Subproblem 3(fixx1 = 1,x2 = 0):Maximize Z= 9 + 6x3 + 4x4

    subject to

    (1) 5x3 + 2x4 4(2) x3 + x4 1

    (3) x3 1

    (4) x4 0

    (5) xj is binary, forj = 3, 4.

    304

    Example

  • 7/24/2019 OD Integer Programming LARGE 2010

    43/67

    Example

    Subproblem 4(fixx1 = 1,x2 = 1):

    Maximize Z= 14 + 6x3 + 4x4

    subject to

    (1) 5x3 + 2x4 1

    (2) x3 + x4 1(3) x3 1

    (4) x4 1

    (5) xj is binary, forj = 3, 4.

    305

    Example

  • 7/24/2019 OD Integer Programming LARGE 2010

    44/67

    Example

    LP relaxation is obtained by replacing (5) by 0xj 1 j

    = 3, 4. Optimal solutions are: LP relaxation for Subproblem 3:

    (x1,x2,x3,x4) = (1, 1, 0.8, 0), withZ= 13.8

    LP relaxation for Subproblem 4:

    (x1,x2,x3,x4) = (1, 1, 0, 0.5), withZ = 16

    Resulting bounds:

    Bound for subproblem 3: Z 13

    Bound for subproblem 4: Z 16

    306

    Example

  • 7/24/2019 OD Integer Programming LARGE 2010

    45/67

    Example

    All three fathoming tests fail, so both are unfathomed.

    307

    Iteration 3

  • 7/24/2019 OD Integer Programming LARGE 2010

    46/67

    Iteration 3

    Subproblem 4 has the larger bound, so next branching

    is done from (x1,x2) = (1, 1). Subproblem 5(fixx1 = 1,x2 = 1,x3 = 0):

    Maximize Z= 14 + 4x4

    subject to

    (1) 5x3 + 2x4 1

    (2), (4) x4 1

    (5) x4 is binary

    308

    Iteration 3 (cont )

  • 7/24/2019 OD Integer Programming LARGE 2010

    47/67

    Iteration 3 (cont.)

    Subproblem 6(fixx1 = 1,x2 = 1,x3 = 1):

    Maximize Z= 20 + 4x4

    subject to

    (1) 2x44

    (2) x4 0

    (4) x4 1(5) x4 is binary

    LP relaxation: replace (5) by 0 x4 1. Optimal solutions are:

    LP relaxation for subproblem 5: (x1,x2,x3,x4) = (1, 1, 0, 0.5),Z= 16

    LP relaxation for subproblem 6: No feasible solutions.

    Bound for subproblem 5: Z 16

    309

    Iteration 3 (concl )

  • 7/24/2019 OD Integer Programming LARGE 2010

    48/67

    Iteration 3 (concl.)

    Subproblem 6 is fathomed by test 2, but not

    Subproblem 5.

    310

    Iteration 4

  • 7/24/2019 OD Integer Programming LARGE 2010

    49/67

    Iteration 4

    Node created most recently is selected for branching:

    x4 = 0: (x1,x2,x3,x4) = (1,1,0,0) is feasible, withZ= 14

    x4 = 1: (x1,x2,x3,x4) = (1,1,0,1) is infeasible.

    First solution passes test 3 and second passes test 2

    for fathoming.

    First solution is better than incumbent, so it becomes

    new incumbent, withZ* = 14

    Reapplying fathoming test 1 to remaining branch to

    remaining Subproblem 3, it is fathomed: Bound = 13 Z* = 14.

    311

    Solution tree after Iteration 4

  • 7/24/2019 OD Integer Programming LARGE 2010

    50/67

    Solution tree after Iteration 4

    312

    Other options in B&B

  • 7/24/2019 OD Integer Programming LARGE 2010

    51/67

    Other options in B&B

    Branching can be done e.g. from the best boundrather

    than from the most recent ly createdsubproblem. Bounding is done by solving a relaxation. Another

    possible one is e.g. the Lagrangian relaxation.

    Fathoming criteria can be generally stated as:

    Criterion 1: feasible solutions of subproblem must have

    Z Z*

    Criterion 2: the subproblem has no feasible solutions, or

    Criterion 3: an optimal solution of subproblem has been

    found.

    Branch-and-bound can find a nearly opt imal solut ion.

    313

    Branch-and-bound for MIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    52/67

    Branch and bound for MIP

    General form of the problem:

    314

    1

    1

    Maximize

    subject to , for 1,2, , ,

    0, for 1,2, ,and

    is integer, for 1, 2, , ; .

    n

    j j

    j

    n

    ij j ij

    j

    j

    Z c x

    a x b i m

    x j n

    x j I I n

    Branch-and-bound for MIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    53/67

    Branch and bound for MIP

    Similar to BIP algorithm. Solving LP relaxations are

    the basis for boundingand fathoming.

    Four changes are needed:

    1. Choice ofbranching variable. Only integer variables

    that have a noninteger valuein the optimal solution

    for the LP relaxation can be chosen.

    315

    Branch-and-bound for MIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    54/67

    Branch and bound for MIP

    2. As integer variables can have a large number of

    possible values, create just twonew subproblems: xj

    *: noninteger value of optimal solution for LP

    relaxation.

    [xj*] = greatest integer xj

    *.

    Range of variables for two new subproblems:

    xj* [xj

    *] and xj* [xj

    *] + 1.

    Each inequality becomes an addit ional constraint.

    Example:xj

    * = 3.5, then:xj

    * 3 and xj

    * 4.

    When changes 1. and 2. are combined, a recurring

    branching variablecan occur, see figure.

    316

    Recurring branching variable

  • 7/24/2019 OD Integer Programming LARGE 2010

    55/67

    Recurring branching variable

    317

    Branch-and-bound for MIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    56/67

    Branch and bound for MIP

    Changes needed:

    3. Bounding step: value ofZwas rounded down in BIPalgorithm. Now some variables are not integer-

    restricted so bound is value ofZwithoutrounding.

    4. Fathoming test 3: optimal solution for the

    subproblems LP relaxation must only be integerforinteger-restrictedvariables.

    318

    MIP branch-and-bound algorithm

  • 7/24/2019 OD Integer Programming LARGE 2010

    57/67

    MIP branch and bound algorithm

    Initialization:SetZ* =. Apply bounding, fathoming

    and optimization steps described below to the wholeproblem. If not fathomed, perform iteration.

    Steps for each it erat ion:

    1. Branching: Among the remaining subproblems, select

    the one created most recently.

    From integer variablesthat have a noninteger value

    in the optimal solution for the LP relaxation chose the

    first one. Letxj be this variable andxj* its value.

    Branch from this creating two subproblems by adding

    the respective constraints:xj* [xj

    *] andxj* [xj

    *] + 1.

    319

    MIP branch-and-bound algorithm

  • 7/24/2019 OD Integer Programming LARGE 2010

    58/67

    MIP branch and bound algorithm

    2. Bounding: For each new subproblem, obtain its

    boundby applying its LP relaxation. UseZwithoutrounding for resulting optimal solution.

    3. Fathoming: For each new subproblem, apply the

    three fathoming tests, and discard subproblems that

    are fathomed by the tests.Test 1: Itsbound Z*, whereZ* is value ofZfor current

    incumbent.

    Test 2: Its LP relaxation has no feasible solutions.

    320

    MIP branch-and-bound algorithm

  • 7/24/2019 OD Integer Programming LARGE 2010

    59/67

    MIP branch and bound algorithm

    3. Fathoming (cont.):

    Test 3: Optimal solution for its LP relaxation is integerforinteger-restrictedvariables. (if this solution is better it

    becomes new incumbent, and test 1 is reapplied for all

    unfathomed subproblems).

    Optimality test: Stop when there are no remainingsubproblems. The current incumbent is optimal.

    Otherwise, perform another iteration.

    See MIP example in PL#7 and in page 518 of Hilliersbook.

    321

    Branch-and-cut approach to BIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    60/67

    Branch and cut approach to BIP

    Branch-and-bound was develop and refined in the

    1960s and early 1970s. Can solve problems up to 100 variables.

    Branch-and-cut approach was introduced in the mid

    1980s, which can solve problems with thousands

    variables. Only solve large problems if they are sparse (less than 5

    or even 1% ofnonzerovalues in the functional

    constraints).

    Uses a combination of: automatic problem processing,generation of cutting planes and B&B techniques.

    322

    Automat ic problem processing for BIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    61/67

    Automat ic problem processingfor BIP

    Computer inspection of IP formulation to spot

    reformulationsthat make the problem quicker tosolve:

    Fixing variables: identify variables that can be fixed at 0

    or 1, because other value cannot be optimal.

    Eliminating redundant constraints: identify andeliminate constraints that are automatically satisfied by

    solutions that satisfy all other constraints.

    Tightening constraints: tighten constraints in a way that

    reduces feasible region of LP relaxation.

    323

    Tightening constraints

  • 7/24/2019 OD Integer Programming LARGE 2010

    62/67

    Tightening constraints

    324

    LP relaxation including

    feasible region.

    LP relaxation after tightening

    constraint.

    Generating cutting planes for BIP

  • 7/24/2019 OD Integer Programming LARGE 2010

    63/67

    g g p

    Cutting plane (or cut) is a new functional constraint

    that reduced feasible region for LP relaxation.Procedure for generating cutting planes:

    1. Consider functional constraint in form.

    2. Find a group ofNvariables such that

    a) Constraint is violated if every variable in group = 1 and

    all other variables = 0.

    b) It is satisfied if value ofanyvariables changes from 1

    to 0.

    3. Resulting cutting plane:

    sum of variables in group N 1.

    325

    Constraint Programming

  • 7/24/2019 OD Integer Programming LARGE 2010

    64/67

    g g

    Combination of artificial intelligence with computer

    programming languages in the mid-1980s. Flexibilityin stating (nonlinear) constraints:

    1. Mathematical constraints, e.g.,x +y

  • 7/24/2019 OD Integer Programming LARGE 2010

    65/67

    g

    4. Explicit constraints, e.g.,x andy have same domain

    {1,2,3,4,5}, but (x,y) must be (1, 1), (2, 3) or (4, 5).5. Unary constraints, e.g.z is integer between 5 and 10.

    6. Logical constraints, e.g., ifx = 5,y {6, 7, 8}.

    Standard logical functions such as IF, AND, OR, NOT

    can be used.

    Constraint programming applies domain reduct ion

    and constraint propagat ion.

    The process creates a t ree search.

    327

    Example

  • 7/24/2019 OD Integer Programming LARGE 2010

    66/67

    p

    Consider:

    x1{1,2},x2{1,2},x3{1,2,3},x4{1,2,3,4,5} Constraints:

    1. Allvariables must have different values;

    2. x1 +x3 = 4.

    Apply domain reduction and constraint propagation

    to obtain feasible solutions:

    x1{1}, x2{2}, x3{3}, x4{4,5}.

    328

    Constraint Programming

  • 7/24/2019 OD Integer Programming LARGE 2010

    67/67

    g g

    Steps in Constraint Programming:

    1. Formulate a compact model of the problem by usinga variety of constraint types (most not of IP type).

    2. Efficiently find feasible solutions that satisfy all these

    constraints.

    3. Search among feasible solutions for an optimal one.

    Strength of constraint programming is in first two

    steps, whereas the main strength of IP is in step 3.

    Current research: integrate CP and IP!