Decision Aid Methodologies In Transportation Lecture 4: Integer - - PowerPoint PPT Presentation
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
On the previous lecture…
- Container Storage Inside a Container Terminal
- Two-phase simplex method
- Duality theory
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
Linear (mixed) integer programming
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
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!
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
Heuristics
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.
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.
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 ?
- 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
Branch and Bound algorithm
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
𝑻
𝑻𝟐 𝑻𝟑
𝑻𝟐𝟐 𝑻𝟐𝟑 𝑻𝟑𝟐 𝑻𝟑𝟑
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
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
𝑻𝟐 𝑻𝟑
𝑄 𝑄
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
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:
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?
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
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
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
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 𝑺(𝑸𝟏)
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
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
𝑺(𝑸𝟏
𝒔)
Linear (mixed) integer programming
Some integer programming tricks
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 ∣ 𝑚 ≤ 𝑦 ≤ 𝑣
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 𝑚 ≤ 𝑦 ≤ 𝑣
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
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 𝑘
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, … , 𝑛
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
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
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 + 𝑁𝑧𝑘
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
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𝑦𝑘)
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 𝑨𝑘
𝑨𝑘= 𝑦𝑘 × 𝑧𝑘
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
Linear (mixed) integer programming
IP and MIP have extremely wide applications in practice
Knapsack problem
Which containers should be loaded in the vessel?
Knapsack problem
𝑥𝑗: weight if container 𝑗 𝑞𝑗: price of container 𝑗
- Data
If container 𝑗 is selected Otherwise 𝑦𝑗 = ቊ1
- Decision variables
𝐧𝐛𝐲
𝑗
𝑞𝑗𝑦𝑗
- Objective function
𝑗
𝑥𝑗𝑦𝑗 ≤ 𝐷
- Constraints
𝐷: capacity of the vessel
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
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
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
𝐽: 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 𝑘
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, … , 𝑛
Assignment problem
Berth allocation problem
- The berth allocation problem consists of assigning incoming ships to berthing
position
𝐶: 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
- Constraints
𝑗=1 𝑛
𝑧𝑗𝑘 = 1, ∀𝑘 = 1, … , 𝑜
𝑘=1 𝑜
𝑧𝑗𝑘 = 1, ∀𝑗 = 1, … , 𝑛 𝑧𝑗𝑘 ∈ 0,1 , ∀𝑗 = 1,2, … , 𝑛
Assignment problem
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 »
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.