BranchAndBound

Embed Size (px)

Citation preview

  • 8/17/2019 BranchAndBound

    1/32

    ME 6973 Analytical Techniques in Engineering II

    Spring 2015

    Introduction to Branch &

    Bound 

  • 8/17/2019 BranchAndBound

    2/32

    !"#$%&'#$('!)*$(

  • 8/17/2019 BranchAndBound

    3/32

    ,-#./01

    2)$34(1" 5&1 678

    .#-4.491 ! : ; ?  ! ? 

    3*@A1%5 5)   ! = > ? ! ? ≤ B

    C ! = > ! ?  ≤ ?:

    ? ! = > ? ! ? ≥ < ! =D ! ?  # >

    Integer and Combinatorial Optimization, Nemhauser and Wolsey, Chapter: II.4

  • 8/17/2019 BranchAndBound

    4/32

    E&1 )/54.#0 3)0*54)$ )F G7H 438 

     ! : >IJK==L  ! J $ I=MK==L  ! B ; JJ?K==

     ! =  

     I=K==L  ! J $  I?K==L  ! B ; JMK== ! ? $ ICK==L  ! J $  I=K==L  ! B ; B:K==

     ! C $ INK==L  ! J $  IMK==L  ! B ;

  • 8/17/2019 BranchAndBound

    5/32

    U) T1 %)$34(1" 5&1 5T) 673D 67= #$( 67?8 

     ! : >IJK==L  ! J $ I=MK==L  ! B ; JJ?K==

     ! =   I=K==L  ! J $  I?K==L  ! B ; JMK==

     ! ? $ ICK==L  ! J $  I=K==L  ! B ; B:K==

     ! C $ INK==L  ! J $  IMK==L  ! B ;

  • 8/17/2019 BranchAndBound

    6/32

    U)0S4$P 5&1 G7H )F 67=D T1 )@5#4$8 

     ! : > I

  • 8/17/2019 BranchAndBound

    7/32

    E&1 F4"35 (4%54)$#"Q F)" 5&1 G7H )F 67? 438 

     ! : >IJK==L  ! J $ I=MK==L  ! B ; JJ?K==

     ! =  

     I=K==L  ! 

    J$

      I?K==L  ! 

    B ; JMK== ! ? $ ICK==L  ! J $  I=K==L  ! B ; B:K==

     ! C $ INK==L  ! J $  IMK==L  ! B ;

  • 8/17/2019 BranchAndBound

    8/32

    Y"). 67=D T1 %)$34(1" 67J #$( 67B8 

     ! : > I

  • 8/17/2019 BranchAndBound

    9/32

    U)0S4$P 5&1 G7H )F 67JD T1 )@5#4$8 

     ! : > ? ! M $ 

  • 8/17/2019 BranchAndBound

    10/32

    U)0S4$P 5&1 G7H )F 67BD T1 )@5#4$8 

     ! : > ? ! B $ J  ! 

  • 8/17/2019 BranchAndBound

    11/32

    ,-#./01

    Z"#/&4%#00Q8

    E&1 )/54.#0 3)0*54)$ 43  ! = ; BD ! ? ; :D T45& ! : ;

    ?N 

     x2 ≤ 3 

     x1 ≤ 3 

     x2 ≥ 4 

     x1 ≥ 4

    IP

    IP1 

    IP3  IP4 

    IP2 

    Fathomed by

    infeasibility

  • 8/17/2019 BranchAndBound

    12/32

    [\7G ,-#./01

  • 8/17/2019 BranchAndBound

    13/32

    67var x1 integer >= 0, = 0, = 0, = 0, = 0, = 0, = 1;

    c2: x1 + x2 + 3* x6 >= 1;

    c3: x1 + x2 + x6 >= 1;

    c4: x3 - 3* x4 >= 1;

    c5: x3 - 2* x4 -5* x5 >= 1;

    c6: x4 + 3* x5 -4 *x6 >= 1;c7: x2 + x5 + x6 >= 1;

    solve;

    display x1, x2,x3, x4, x5, x6;

    end;

  • 8/17/2019 BranchAndBound

    14/32

    G7H•   "#$ &' () *+ ,) '*-

    •   "#$ &! () *+ ,) '*-

    •   "#$ &. () *+ ,) '*-

    •   "#$ &/ () *+ ,) '*-

    •   "#$ &0 () *+ ,) '*-

    •   "#$ &1 () *+ ,) '*-

    •   2#&32345 6789 :&' : !; &! :*•   %=8 -= > ? ] -? ̂ ; =V _ [051"$#54S10Q8 -= > -? ^; =

    •   %?8 -= > -? > J] -M ^; =V

    •   %J8 -= > -? > -M ^; =V

    •   %B8 -J ' J] -B ^; =V

    •   %C8 -J ' ?] -B 'C] -C ^; =V

    •   %M8 -B > J] -C 'B ]-M ^; =V

    •   % -C > -M ^; =V

    •   >6?"5-

    •   @3>A?#B &'+ &!+&.+ &/+ &0+ &1-

    •   A$3CDE FGAD32#? H#?I59 JEKCF+ :L&' = !; &! =*•  5C@- 

  • 8/17/2019 BranchAndBound

    15/32

    •  6$51P1" 3)0*54)$-=XS#0 ; :

    -?XS#0 ; =-JXS#0 ; B

    -BXS#0 ; =

    -CXS#0 ; :

    -MXS#0 ; :R/54.#0 `#0*18 'BX?:::::

    •  G7 "10#-#54)$-=XS#0 ; :XJJJJJJJJJJJJJJJ

    -?XS#0 ; :XMMMMMMMMMMMMMM<

    -JXS#0 ; ?XMMMMMMMMMMMMM<

    -BXS#0 ; :

    -CXS#0 ; :XJJJJJJJJJJJJJJJ

    -MXS#0 ; :

    R/54.#0 `#0*18 'JXJJJJJJ

  • 8/17/2019 BranchAndBound

    16/32

    • #./08 .)(10 /:X#./0

    • \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

    • ? 451"#54)$3D )@A1%54S1 'JXJJJJJJJJJ

    • -= ; :XJJJJJJ

     -? ; :XMMMMM<• -J ; ?XMMMM<

    • -B ; :

    • -C ; :XJJJJJJ

    • -M ; :

    • R/54.#0 `#0*18 'JXJJJJJJ

    • #./08

  • 8/17/2019 BranchAndBound

    17/32

    • p1.ampl

    • Infeasible!

    •   #./08 .)(10 /?X#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

    •   J 451"#54)$3D )@A1%54S1 'JXJ

  • 8/17/2019 BranchAndBound

    18/32

    •  #./08 .)(10 /JX#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

    •   ? 451"#54)$3D )@A1%54S1 'JXNC

  • 8/17/2019 BranchAndBound

    19/32

    •  #./08 .)(10 /BX#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

    •   = 451"#54)$3D )@A1%54S1 'JX

  • 8/17/2019 BranchAndBound

    20/32

    •  #./08 .)(10 /CX#./0

    •   /"13)0S18 %)$35"#4$5 %C %#$$)5 &)0(8

      @)(Q ^; = %#$$)5 @1 a; ':XJCV (4FF1"1$%1 ;=XJC

    •  -= ; :

     -? ; :•  -J ; :

    •  -B ; :

    •  -C ; :

    •  -M ; :

    •  R/54.#0 `#0*18 :X::::::

    •   6$F1#34@01b

  • 8/17/2019 BranchAndBound

    21/32

    •  #./08 .)(10 /MX#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

    •   ? 451"#54)$3D )@A1%54S1 'BX:MMMMMMM<

    •  -= ; =

    •  -? ; :

    •  -J ; C

    •  -B ; :XJJJJJJ

    •  -C ; :XMMMMM<

    •  -M ; :XJJJJJJ

    • R/54.#0 `#0*18 'BX:MMMM<

  • 8/17/2019 BranchAndBound

    22/32

    •   #./08 .)(10 /

  • 8/17/2019 BranchAndBound

    23/32

    •  #./08 .)(10 /NX#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

      = 451"#54)$3D )@A1%54S1 'BX

  • 8/17/2019 BranchAndBound

    24/32

    •  #./08 .)(10 /WX#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

    •   = 451"#54)$3D )@A1%54S1 'BX?

    •  -= ; :

    •  -? ; =

    •  -J ; B

    •  -B ; =

    •  -C ; :

    •  -M ; :

     R/54.#0 `#0*18 'BX?::::: 

    0 ( 0 =: 0

  • 8/17/2019 BranchAndBound

    25/32

    •  #./08 .)(10 /=:X#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

      : 451"#54)$3D )@A1%54S1 'JXNJJJJJJJJ•  -= ; :

    •  -? ; =

    •  -J ; J•  -B ; :

    •  -C ; :XJJJJJJ

    •  -M ; :

    •  R/54.#0 `#0*18 'JXNJJJJJ

    0 ( 0 =? 0

  • 8/17/2019 BranchAndBound

    26/32

    •  #./08 .)(10 /=?X#./0

    •   \6ORU CXC=8 )/54.#0 3)0*54)$ F)*$(X

      = 451"#54)$3D )@A1%54S1 'CX

  • 8/17/2019 BranchAndBound

    27/32

    `41T F"). 5&1 (4%54)$#"Q

    "#$%& '#()#*$%+,

    -&%#./ Dictionary D’ 

    #0 %&1%,0 #$23%0#4&35

    Branching

    Note: this section are taken fromDr. Sankaranarayanan’s slides.

  • 8/17/2019 BranchAndBound

    28/32

    ,-#./01 I6G7L

    var x1 >= 0, = 0, = 0,

  • 8/17/2019 BranchAndBound

    29/32

    Y4$#0 c4%54)$#"Q

  • 8/17/2019 BranchAndBound

    30/32

    c4%54)$#"Q [F51" !"#$%&

    ;#()#*$%+, 43(*.30

  • 8/17/2019 BranchAndBound

    31/32

    c4#P"#.

    D%+3$) 6*'3

    E"#$%& ;#()#*$%+,F

    -?#&' 6*'3/

    GH'' $31 +*15

    GD+#.%& I$23%0#4&3 4B) ;B%&

    "3%0#4&3

    -*$0#'3+ 'B%&

    (*.

  • 8/17/2019 BranchAndBound

    32/32

    !d! Z1$1"#0 Y)". c4%54)$#"Q

    •   Z4S1 3/1%4#0 5"1#5.1$5 5) @)*$(3 )$ S#"4#@013X

    •   \)(4FQ 5&1 U4./01- #0P)"45&. 4$ 5T) T#Q38

     –

     c4%54)$#"413 $)T S1 3/1%4#0 T#Q3 5) 5"#%e@)*$(3X

     – 74S)54$P 43 .)(4F41(X