Decision Aid Methodologies In Transportation Lecture 4: Integer - - PowerPoint PPT Presentation

decision aid methodologies in transportation
SMART_READER_LITE
LIVE PREVIEW

Decision Aid Methodologies In Transportation Lecture 4: Integer - - PowerPoint PPT Presentation

CIVIL-557 Decision Aid Methodologies In Transportation Lecture 4: Integer programming I: Branch and Bound Virginie Lurkin Transport and Mobility Laboratory TRANSP-OR cole Polytechnique Fdrale de Lausanne EPFL On the previous lecture


slide-1
SLIDE 1

CIVIL-557

Decision Aid Methodologies In Transportation

Transport and Mobility Laboratory TRANSP-OR École Polytechnique Fédérale de Lausanne EPFL

Virginie Lurkin

Lecture 4: Integer programming I: Branch and Bound

slide-2
SLIDE 2

On the previous lecture…

  • Container Storage Inside a Container Terminal
  • Two-phase simplex method
  • Duality theory
slide-3
SLIDE 3

Suppose 2 new containers are expected to arrive for storage in the next planning period of a terminal. Suppose there are only 2 blocks in the terminal, each with 20 storage spaces. For the moment, there are 6 containers in block 1 and 12 containers in block 2.

𝑶 = 𝟑 B = 𝟑 A = 𝟑𝟏 𝒃𝟐 = 𝟐𝟏 𝒃𝟑 = 𝟘 𝑮 =

𝟐𝟏+𝟘+𝟑 𝟑×𝟑𝟏

= 𝟏. 𝟔𝟑𝟔

𝑁𝑗𝑜𝑗𝑛𝑗𝑨𝑓 𝑣1

+ + 𝑣1 − + 𝑣2 + + 𝑣2 −

𝑡𝑣𝑐𝑘𝑓𝑑𝑢 𝑢𝑝 𝑦1−𝑣1

+ + 𝑣1 − = 0.5

𝑦2−𝑣2

+ + 𝑣2 − = 1.5

𝑦1+𝑦2 = 2 𝑦1, 𝑦2, 𝑣1

+, 𝑣1 −, 𝑣2 +, 𝑣2 − ≥ 0

What if the situation is different…

Linear programming

𝟐𝟏 𝟘

  • Optimal solution: (𝟏. 𝟔, 𝟐. 𝟔, 0, 0, 0, 0)
  • 𝑦1 and 𝑦2 represent the number of containers to be assigned, respectively, to

block 1 and 2

  • 𝑦1 and 𝑦2, in reality, should be integer
slide-4
SLIDE 4

Linear (mixed) integer programming

slide-5
SLIDE 5

Linear integer programming

𝐵𝑦 ≤ 𝑐 𝑦 ≥ 0, subject to where 𝐵 ∈ ℝ𝑛×𝑜, b ∈ ℝ𝑛, c ∈ ℝ𝑜

𝑛𝑗𝑜 𝑑𝑈𝑦

𝑦 ∈ 𝑜

Pure integer programming (IP):

  • A mixed-integer programming (MIP) problem is one where only some of

the decision variables are constrained to be integer values

slide-6
SLIDE 6

Linear (mixed) integer programming

How to solve integer programming problem?

Integer solutions Objective function Optimum of LP relaxation Nearest integer (not feasible) IP optimum

  • Intuitive idea: remove the integer constraints from the IP formulation (LP relaxation)
  • Solve the LP relaxation and round to the nearest integer

Not the best idea!

slide-7
SLIDE 7

Linear (mixed) integer programming

How to solve integer programming problem?

  • There is no optimality conditions for integer programming problem
  • Explicit enumeration is normally impossible due to the exponentially increasing

number of potential solutions

  • Exact methods can be used to find the optimal solution:
  • Two main methods:
  • Computing a true optimal solution might be very costly
  • Heuristic methods can be used to find a good solution:
  • Does not guarantee optimality

Branch and Bound (B&B) and Cutting planes

slide-8
SLIDE 8

Heuristics

slide-9
SLIDE 9

Heuristics

Algorithms and complexity measures

  • An algorithm is a finite set of instructions that when executed on an input can

produce an output after finitely many steps.

  • The input encodes an instance of the problem that the algorithm is supposed to

solve, and the output encodes a solution for the given problem instance.

  • The computation of an algorithm on an input is the sequence of steps it performs.
  • Algorithms do not always terminate; they may perform an infinite computation for

some, or any, input.

slide-10
SLIDE 10

Heuristics

Algorithms and complexity measures

  • There are problems that can be easily and precisely defined in mathematical terms,

yet that provably cannot be solved by any algorithm (undecidable/ uncomputable problems.

  • In practice, we cannot expect to be able to solve real world problem instances of

arbitrary size to optimality.

  • Depending on the size of an instance or depending on the available CPU time we will
  • ften have to be satisfied with computing approximate solutions.
slide-11
SLIDE 11

Heuristics

Algorithms and complexity measures

  • The term heuristic is used for algorithms which find solutions among all possible
  • nes ,but they do not guarantee that the best will be found.
  • A good heuristic algorithm should fulfil the following properties:
  • A solution can be obtained with reasonable computational effort.
  • The solution should be near optimal (with high probability).
  • The likelihood for obtaining a bad solution (far from optimal) should be low.

How can we evaluate the performance of an heuristic algorithm ?

slide-12
SLIDE 12
  • 1. Rearrange blocks so that 𝑏𝑗 increases with 𝑗
  • 2. Determine 𝑦𝑗 in increasing order of 𝑗 using:

𝑦1 = min{𝑂, max 0, 𝐵 × F − 𝑏1 } 𝑦𝑗 = m𝑗𝑜{max 0, 𝐵 × F − 𝑏𝑗 , 𝑂 − ෍

𝑠=1 𝑗−1

𝑦𝑠} ∀𝑗 ≥ 2

Heuristics

A concrete example for our container storage problem

slide-13
SLIDE 13

Branch and Bound algorithm

slide-14
SLIDE 14

Branch and Bound algorithm

General idea

  • Implicit enumeration of the feasible set, by ruling out large sets of feasible

points

  • How ?
  • By partitioning the feasible set into smaller subsets
  • By using bounds to identify subsets that are guaranteed not to contain an
  • ptimal solution

𝑻

𝑻𝟐 𝑻𝟑

𝑻𝟐𝟐 𝑻𝟐𝟑 𝑻𝟑𝟐 𝑻𝟑𝟑

slide-15
SLIDE 15

Theorem 1:

  • 𝑄𝑙is an optimization problem (minimization)
  • 𝑇 is the feasible set of the optimization problem 𝑄
  • 𝑇 is partitioned into 𝐿 subsets: 𝑇1 ∪ … ∪ Sm ∪ Sm+1 ∪ … ∪ SK

For each 𝑙 = 1,2, … , 𝐿, let 𝑚𝑓𝑢 𝑦𝑙

∗ be an optimal solution of the

  • ptimization problem 𝑄𝑙(minimization). Let 𝑗 be such that:

𝑔 𝑦𝑗

∗ ≤ 𝑔 𝑦𝑙 ∗ ,

𝑙 = 1, … , 𝐿 Then 𝑦𝑗

∗ is an optimal solution of the optimization problem 𝑄

𝑻𝟐𝟐 𝑻𝟐𝟑 𝑻𝟑𝟐 𝑻𝟑𝟑

Branch and Bound algorithm

slide-16
SLIDE 16

Branch and Bound algorithm

  • Partitioning the original problem into smaller subproblems
  • For each feasible subproblem, we will calculate a lower bound (best possible value)
  • Lower bounds are obtained by solving relaxations of the original subproblems
  • Calculate lower bounds is much easier (simplex algorithm can be used)

Partitioning:

  • Partitioning the feasible set into smaller subsets

Using bounds:

  • Any feasible solution provides an upper bound on the optimal solution (minimization)
  • A feasible solution is a solution that satisfies all the constraints
slide-17
SLIDE 17

𝑻𝟐 𝑻𝟑

𝑄 𝑄

1

𝑄2 𝑄

11

𝑄

12

Branch and Bound algorithm

𝑀𝐶𝑄 𝑀𝐶𝑄1 𝑀𝐶𝑄2

  • Some candidates are excluded based on the value of the lower bound

Using bounds:

𝑉𝐶

𝑻

If 𝑀𝐶𝑄2 ≥ 𝑉𝐶 If 𝑀𝐶𝑄1 < 𝑉𝐶

  • Branching refers to exploring the subtree of an active node
  • Bounding refers to estimating a lower bound at an active node
slide-18
SLIDE 18

For each 𝑙 = 1,2, … , 𝑛, let 𝑚𝑓𝑢 𝑦𝑙

∗ be an optimal solution of 𝑄𝑙.

For each 𝑙 = 𝑛 + 1, … , 𝐿, let 𝑚(𝑄𝑙) be a lower bound on 𝑄𝑙: 𝑚 𝑄𝑙 ≤ 𝑔 𝑦𝑙 ∀𝑙 ∈ 𝑇𝑙 Let 𝑗 be such that: 𝑔 𝑦𝑗

∗ ≤ 𝑔 𝑦𝑙 ∗ , 𝑙 = 1, … , 𝑛

and 𝑔 𝑦𝑗

∗ ≤ 𝑚 𝑄𝑙 , 𝑙 = 𝑛 + 1, … , 𝐿

Then 𝑦𝑗

∗ is an optimal solution of the optimization problem 𝑄

Branch and Bound algorithm

Theorem 2:

slide-19
SLIDE 19

Branch and Bound algorithm

Branching:

𝑄 𝑄

1

𝑄2 𝑀𝐶𝑄 𝑉𝐶

  • Select a variable 𝑦𝑘 that has a fractional value:

𝑙 < 𝑦𝑘 < 𝑙 + 1, with 𝑙 integer

  • Create two new LP-subproblems:
  • 1. Previous LP-subproblem + constraint 𝑦𝑘 ≤ 𝑙

(𝑙 = 𝑦𝑘 )

  • 2. Previous LP-subproblem + constraint 𝑦𝑘 ≥ 𝑙 + 1

(𝑙 + 1 = 𝑦𝑘 ) How to branch?

slide-20
SLIDE 20

Algorithm

Solve the relaxation 𝑆 𝑄

𝑙 and denote 𝑦𝑆 ∗ the optimal value

𝑚 𝑄𝑙 ≔ 𝑔(𝑦𝑆

∗)

𝑣 𝑄 > 𝑚 𝑄𝑙 ? 𝑦𝑆

∗ integer?

no 𝑄 ≔ 𝑄0 𝑣 𝑄 ≔ +∞ 𝑣 𝑄 , Upper Bound for 𝑄 no Discard 𝑄𝑙 from 𝑄 yes 𝑚 𝑄𝑙 ,Lower Bound for 𝑄𝑙 no yes 𝑔 𝑦𝑆

< 𝑣(𝑄)? 𝑄 empty? no 𝑦∗ = (𝑦𝑆

∗)

𝑣 𝑄 ≔ 𝑔 𝑦𝑆

yes end 𝒚∗, 𝒈∗= 𝒗 𝑸 yes Select 𝑗 such that (𝑦𝑆

∗)𝑗 is not integer

Create 𝑄

𝑙 𝑚 by adding the constraint 𝑦𝑗 ≤ (𝑦𝑆 ∗)𝑗 to 𝑄 𝑙

Create 𝑄𝑙

𝑠 by adding the constraint 𝑦𝑗 ≥ (𝑦𝑆 ∗)𝑗 to 𝑄𝑙

𝑄 ≔ 𝑄 ∪ 𝑄𝑙

𝑚, 𝑄𝑙 𝑠 \P 𝑙

Select a problem 𝑄𝑙 in 𝑄. 𝑄𝑙 infeasible? yes no

Branch and Bound algorithm

slide-21
SLIDE 21

Exploration of the search tree:

𝑄 𝑄

1

𝑄2 𝑄

11

𝑄

12

𝑀𝐶𝑄 𝑀𝐶𝑄1 𝑀𝐶𝑄2 𝑉𝐶 If 𝑀𝐶𝑄2 ≥ 𝑉𝐶 If 𝑀𝐶𝑄1 < 𝑉𝐶 𝑄

122

𝑄

123

𝑄

1232

𝑄

1231

𝑄

121

  • Depth-first search (DFS): explores as far as possible along each branch before backtracking

Branch and Bound algorithm

slide-22
SLIDE 22

Exploration of the search tree:

𝑄 𝑄

1

𝑄2 𝑄

11

𝑄

12

𝑀𝐶𝑄 𝑀𝐶𝑄1 𝑀𝐶𝑄2 𝑉𝐶 If 𝑀𝐶𝑄2 ≥ 𝑉𝐶 If 𝑀𝐶𝑄1 < 𝑉𝐶 𝑄

122

𝑄

123

  • Breadth-first search (BFS): explores nodes level by level

𝑄

121

  • Depending on the problem at hand, either DFS or BFS could be advantageous

Branch and Bound algorithm

slide-23
SLIDE 23

Back to our case:

Branch and Bound algorithm

𝑁𝑗𝑜𝑗𝑛𝑗𝑨𝑓 𝑣1

+ + 𝑣1 − + 𝑣2 + + 𝑣2 −

𝑡𝑣𝑐𝑘𝑓𝑑𝑢 𝑢𝑝 𝑦1−𝑣1

+ + 𝑣1 − = 0.5

𝑦2−𝑣2

+ + 𝑣2 − = 1.5

𝑦1+𝑦2 = 2 𝑦1, 𝑦2, 𝑣1

+, 𝑣1 −, 𝑣2 +, 𝑣2 − ≥ 0

  • 𝑦𝑆

∗ = 0.5, 1.5, 0, 0, 0, 0 and 𝑔 𝑦𝑆 ∗

= 0

𝑄0 𝑣 𝑄 = +∞ 𝑄0

𝑠

𝑄0

𝑚

𝑦1 ≤ 0 𝑦1 ≥ 1

  • 𝑣 𝑄 > 𝑚 𝑄0
  • 𝑚 𝑄0 = 0
  • 𝑦1, 𝑦2 are not integers
  • Select 𝑦1 for branching

𝑚(𝑄0) = 0 𝑺(𝑸𝟏)

slide-24
SLIDE 24

Back to our case:

Branch and Bound algorithm

  • 𝑦𝑆

∗ = 0, 2, 0, 0.5, 0.5, 0 and 𝑔 𝑦𝑆 ∗

= 1

𝑄0 𝑣 𝑄 = +∞ 𝑄0

𝑠

𝑄0

𝑚

𝑦1 ≤ 0 𝑦1 ≥ 1

  • 𝑣 𝑄 > 𝑚 𝑄0
  • 𝑚 𝑄0

𝑚 = 1

  • 𝑦1, 𝑦2 are integers  𝑣 𝑄 = 1
  • Discard 𝑄0

𝑚

𝑚(𝑄0) = 0 𝑁𝑗𝑜𝑗𝑛𝑗𝑨𝑓 𝑣1

+ + 𝑣1 − + 𝑣2 + + 𝑣2 −

𝑡𝑣𝑐𝑘𝑓𝑑𝑢 𝑢𝑝 𝑦1−𝑣1

+ + 𝑣1 − = 0.5

𝑦2−𝑣2

+ + 𝑣2 − = 1.5

𝑦1+𝑦2 = 2 𝑦1≤ 0 𝑦1, 𝑦2, 𝑣1

+, 𝑣1 −, 𝑣2 +, 𝑣2 − ≥ 0

𝑺(𝑸𝟏

𝒎 )

𝑚(𝑄0

𝑚) = 1

𝑣 𝑄 = 1

slide-25
SLIDE 25

Back to our case:

Branch and Bound algorithm

  • 𝑦𝑆

∗ = 1, 1, 0.5, 0, 0, 0.5 and 𝑔 𝑦𝑆 ∗

= 1

𝑄0 𝑣 𝑄 = +∞ 𝑄0

𝑠

𝑄0

𝑚

𝑦1 ≤ 0 𝑦1 ≥ 1

  • 𝑣 𝑄 > 𝑚 𝑄0
  • 𝑚 𝑄0

𝑠 = 1

  • 𝑦1, 𝑦2 are integers
  • Discard 𝑄0

𝑠

𝑚(𝑄0) = 0 𝑁𝑗𝑜𝑗𝑛𝑗𝑨𝑓 𝑣1

+ + 𝑣1 − + 𝑣2 + + 𝑣2 −

𝑡𝑣𝑐𝑘𝑓𝑑𝑢 𝑢𝑝 𝑦1−𝑣1

+ + 𝑣1 − = 0.5

𝑦2−𝑣2

+ + 𝑣2 − = 1.5

𝑦1+𝑦2 = 2 𝑦1≥ 1 𝑦1, 𝑦2, 𝑣1

+, 𝑣1 −, 𝑣2 +, 𝑣2 − ≥ 0

𝑚(𝑄0

𝑚) = 1

𝑣 𝑄 = 1 𝑔 𝑦𝑆

= 1 end 𝑦𝑆

∗ = 0, 2, 0, 0.5, 0.5, 0 or 𝑦𝑆 ∗ = 1, 1, 0.5, 0, 0, 0.5

𝑺(𝑸𝟏

𝒔)

slide-26
SLIDE 26

Linear (mixed) integer programming

Some integer programming tricks

slide-27
SLIDE 27

Integer programming tricks

Example 1

  • The value of variable 𝑦 must be either zero or between particular positive bounds

Suppose that a supplier of some item requires that if an item is ordered, then its batch size must be between a particular minimum and maximum value Discontinuous values

  • 𝑦 is the number of ordered units
  • Algebraic notation: 𝑦 = 0 ∣ 𝑚 ≤ 𝑦 ≤ 𝑣
slide-28
SLIDE 28

Integer programming tricks

  • We introduce an indicator variable

An indicator variable is a binary variable (0/1) that indicates a certain state in a model

  • A set of constraints is used to create the desired properties:

𝑦 ≤ 𝑣𝑧 𝑦 ≥ 𝑚𝑧 𝑧 ∈ {0,1}

Discontinuous values 𝑧 = ቊ0 1

for 𝑦 = 0 for 𝑚 ≤ 𝑦 ≤ 𝑣

slide-29
SLIDE 29

Integer programming tricks

Example 2 Fixed costs Suppose that a manager must decide which of 𝑜 warehouses to use for meeting the demands of 𝑛 customers for a good. The decisions to be made are which warehouses to operate and how much to ship from any warehouse to any customer

  • There is a fixed operating cost associated to each warehouse
  • Decisions must be made about tradeoffs between transportation costs and costs

for operating distribution centers

  • Very common issue in modeling distribution systems
slide-30
SLIDE 30

Integer programming tricks

  • We introduce an indicator variable
  • Data:

Fixed costs

𝑧𝑗 = ቊ1

if warehouse 𝑗 is opened if warehouse 𝑗 is not opened 𝑦𝑗𝑘 = amount to be sent from warehouse 𝑗 to customer 𝑘

  • Other decisions variables:

𝑔

𝑗 = fixed operating cost for warehouse 𝑗

𝑞𝑗 = per-unit operating cost at warehouse 𝑗 𝑑𝑗𝑘 = transportation cost for shipping from warehouse 𝑗 to customer 𝑘

slide-31
SLIDE 31

Integer programming tricks

  • Model:

Fixed costs

min ෍

𝑗=1 𝑛

𝑘=1 𝑜

(𝑞𝑗+𝑑𝑗𝑘)𝑦𝑗𝑘 + ෍

𝑗=1 𝑛

𝑔

𝑗𝑧𝑗

  • s. t.

𝑗=1 𝑛

𝑦𝑗𝑘 = 𝑒𝑘 , ∀𝑘 = 1,2, … , 𝑜 ෍

𝑘=1 𝑜

𝑦𝑗𝑘 ≤ 𝑵𝑧𝑗, ∀𝑗 = 1,2, … , 𝑛 𝑵 is a big number 𝑦𝑗𝑘 ≥ 0, ∀𝑗 = 1,2, … , 𝑛, ∀𝑘 = 1,2, … , 𝑜 𝑧𝑗 ∈ 0,1 , ∀𝑗 = 1,2, … , 𝑛

slide-32
SLIDE 32

Integer programming tricks

Example 3 Suppose that a company has to choose among two modes of operation for the manufacturing process of its products on a single machine

  • Very common issue in modeling manufacturing process
  • Each mode has its own performance (number of units produced by minute)

Either… or …

  • A mode of operation might better suit to some products
slide-33
SLIDE 33

Integer programming tricks

  • We introduce an indicator variable
  • Data:

Either… or …

𝑧𝑘 = ቊ1

if process 1 is chosen for product 𝑘 if process 2 is not chosen for product 𝑘 𝑦𝑘 = number of units of product 𝑘 produced by the company

  • Other decisions variables:

𝑏𝑗𝑘 = per-unit time needed (in minutes) to produce product 𝑘 using process 𝑗 𝑐𝑗 = maximum amount of time the machine can be used if process 𝑗 is used

slide-34
SLIDE 34

Integer programming tricks

  • Constraints:

Either… or …

  • s. t.

𝑘=1 𝑜

𝑏1𝑘𝑦𝑘 ≤ 𝑐1

if process 1 is chosen for product 𝑘, i.e. if 𝑧𝑘 = 1

  • r
  • s. t.

𝑘=1 𝑜

𝑏2𝑘𝑦𝑘 ≤ 𝑐2

if process 2 is chosen for product 𝑘, i.e. if 𝑧𝑘 = 0 𝑦𝑘 ≥ 0, ∀𝑘 = 1,2, … , 𝑜 𝑧𝑘 ∈ {0,1}

  • s. t.

𝑘=1 𝑜

𝑏1𝑘𝑦𝑘 ≤ 𝑐1 + 𝑁(1 − 𝑧𝑘) ෍

𝑘=1 𝑜

𝑏2𝑘𝑦𝑘 ≤ 𝑐2 + 𝑁𝑧𝑘

slide-35
SLIDE 35

Integer programming tricks

  • Constraints:

If… then …

𝑦𝑘 ≥ 0, ∀𝑘 = 1,2, … , 𝑜 𝑧𝑘 ∈ {0,1}

  • s. t.

𝑘=1 𝑜

𝑏1𝑘𝑦𝑘 ≤ 𝑐1 + 𝑁(1 − 𝑧𝑘) ෍

𝑘=1 𝑜

𝑏2𝑘𝑦𝑘 ≤ 𝑐2 + 𝑁𝑧𝑘

  • If process 1 is applied to product 1, it has to be applied to product 2

if 𝑧1 = 1, then 𝑧2 = 1 𝑧2 ≥ 𝑧1

slide-36
SLIDE 36

Integer programming tricks

  • Data:

𝑑𝑗𝑘 = per-unit cost to produce product 𝑘 using process 𝑗

Elimination of products of variables

  • Objective function:

min ෍

𝑘=1 𝑜

(𝑑1𝑘𝑦𝑘 𝑧𝑘 + c2j𝑦𝑘(1 − 𝑧𝑘)) nonlinear ෍

𝑘=1 𝑜

((𝑑1𝑘−𝑑2𝑘)𝑦𝑘 𝑧𝑘 + c2j𝑦𝑘)

slide-37
SLIDE 37

min ෍

𝑘=1 𝑜

((𝑑1𝑘−𝑑2𝑘)𝑦𝑘 𝑧𝑘 + c2j𝑦𝑘)

Integer programming tricks

Elimination of products of variables

  • In general, a product of two variables can be replaced by one variable,
  • A number of new constraints is imposed on the new variable

continuous variables binary variables

Product of a binary variable and a continuous variable

𝑨𝑘 ≤ 𝑣𝑧𝑘 𝑨𝑘 ≤ 𝑦𝑘 𝑨𝑘 ≥ 𝑦𝑘 − u(1 − yj) 𝑨𝑘 ≥ 0 0 ≤ 𝑦𝑘 ≤ 𝑣

Upper bound on 𝑦𝑘 New variable 𝑨𝑘

𝑨𝑘= 𝑦𝑘 × 𝑧𝑘

slide-38
SLIDE 38

Integer programming tricks

Product of two binary variables

𝑦𝑘𝑧𝑧

binary variables binary variables

Product of two continuous variables New variable 𝑨𝑘

𝑨𝑘= 𝑦𝑘 × 𝑧𝑘 𝑨

𝑘 ≤ 𝑦𝑘

𝑨

𝑘 ≤ 𝑧𝑘

𝑨

𝑘 ≥ 𝑦𝑘 + 𝑧𝑘 − 1

𝑨𝑘 ∈ {0,1} 𝑦𝑘𝑧𝑧

continuous variables continuous variables

𝑨𝑘 = 1 2 (𝑦𝑘 + 𝑧𝑘) 𝑥

𝑘 = 1

2 (𝑦𝑘 − 𝑧𝑘)

New variables 𝑨𝑘 and 𝑥

𝑘

𝑨

𝑘 2−𝑥 𝑘 2 = 𝑦𝑘 × 𝑧𝑘

Quadratic function

slide-39
SLIDE 39

Linear (mixed) integer programming

IP and MIP have extremely wide applications in practice

slide-40
SLIDE 40

Knapsack problem

Which containers should be loaded in the vessel?

slide-41
SLIDE 41

Knapsack problem

𝑥𝑗: weight if container 𝑗 𝑞𝑗: price of container 𝑗

  • Data

If container 𝑗 is selected Otherwise 𝑦𝑗 = ቊ1

  • Decision variables

𝐧𝐛𝐲 ෍

𝑗

𝑞𝑗𝑦𝑗

  • Objective function

𝑗

𝑥𝑗𝑦𝑗 ≤ 𝐷

  • Constraints

𝐷: capacity of the vessel

slide-42
SLIDE 42

Which boxes should be loaded in the container in order to maximize the revenue? Related problems deal with the loading of containers in trains or aircrafts

Knapsack problems

slide-43
SLIDE 43

Facility location problem

Where to locate inland container depots?

  • Inland container depots: storage area for empty shipping containers situated at

inland points away from sea ports

slide-44
SLIDE 44

Facility location problem

Where to locate inland container depots?

  • Inland container depots: storage area for empty shipping containers situated at

inland points away from sea ports

slide-45
SLIDE 45

𝐽: set of 𝑛 alternative facility locations J: set of 𝑜 customer zones

  • Data

𝑑𝑗𝑘: per-unit cost for supplying customer zone 𝑘 by using the facility at 𝑗

Facility location problem

𝑔

𝑗: fixed cost of establishing a facility location 𝑗

𝑐𝑗: capacity of facility location 𝑗 If a facility is established at location 𝑗 Otherwise 𝑧𝑗 = ቊ1

  • Decision variables

𝑦𝑗𝑘 = Units of customer zone 𝑘’s demand satisfied by facility at location 𝑗 𝑒𝑘: total demand for customer zone 𝑘

slide-46
SLIDE 46

Facility location problem

𝐧𝐛𝐲 ෍

𝑗=1 𝑛

𝑘=1 𝑜

𝑑𝑗𝑘𝑦𝑗𝑘 + ෍

𝑗=1 𝑛

𝑔

𝑗𝑧𝑗

  • Objective function

𝑗=1 𝑛

𝑦𝑗𝑘 = 𝑒𝑘, ∀𝑘 = 1, … , 𝑜

  • Constraints

𝑘=1 𝑜

𝑦𝑗𝑘 ≤ 𝑐𝑗, ∀𝑗 = 1, … , 𝑛 ෍

𝑘=1 𝑜

𝑦𝑗𝑘 ≤ (෍

𝑘=1 𝑜

𝑒𝑘) 𝑧𝑗, ∀𝑗 = 1, … , 𝑛 𝑦𝑗𝑘 ≥ 0, ∀𝑗 = 1,2, … , 𝑛; ∀𝑘 = 1,2, … , 𝑜 𝑧𝑗 ∈ 0,1 , ∀𝑗 = 1,2, … , 𝑛

slide-47
SLIDE 47

Assignment problem

Berth allocation problem

  • The berth allocation problem consists of assigning incoming ships to berthing

position

slide-48
SLIDE 48

𝐶: set of 𝑛 berths 𝑊: set of 𝑜 vessels

  • Data

ℎ𝑗𝑘: handling time of vessel 𝑗 at berth 𝑘 If a vessel 𝑘 is allocated to berth 𝑗 Otherwise 𝑧𝑗𝑘 = ቊ1

  • Decision variables

Assignment problem

𝐧𝒋𝒐 ෍

𝑗=1 𝑛

𝑘=1 𝑜

ℎ𝑗𝑘𝑧𝑗𝑘

  • Objective function
slide-49
SLIDE 49
  • Constraints

𝑗=1 𝑛

𝑧𝑗𝑘 = 1, ∀𝑘 = 1, … , 𝑜 ෍

𝑘=1 𝑜

𝑧𝑗𝑘 = 1, ∀𝑗 = 1, … , 𝑛 𝑧𝑗𝑘 ∈ 0,1 , ∀𝑗 = 1,2, … , 𝑛

Assignment problem

slide-50
SLIDE 50

Summary

  • Making Branch and Bound work well in practice requires lots of good ideas
  • Heuristics are often used to find good initial solutions
  • An idea for speeding up Branch and Bound is to add valid inequalities (next

lecture) « Divide ut imperes »

slide-51
SLIDE 51

Main references

  • Murty, K. G. (2015). Intelligent Modeling Essential to Get Good Results: Container Storage Inside a
  • ContainerTerminal. In Case Studies in Operations Research (pp. 1-15). Springer NewYork.
  • Bierlaire, M. (2015). Optimization: principles and algorithms. EPFL Press, Lausanne, Switzerland.