dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization -...

48
Michal Pióro 1 dual separation in LP and column generation In many problems most of potential variables are not used in the primal problem formulation. Constraints correspond to primal variables that are used. It can happen that we are able to produce one (or more) new dual constraints (corresponding to primal variables that are not considered in the problem) violated by current optimal dual solution π π π*. Then by adding these new constraints we are potentially able to decrease the optimal dual solution (since we are add constraints). If we decrease the dual maximum then we decrease the primal minimum as W* = F*. Besides, if we are not able to eliminate current π π π* then the current primal solution is optimal in the general sense (with all potential primal variables included).

Transcript of dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization -...

Page 1: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 1

dual separation in LP and column generation

In many problems most of potential variables are not used in theprimal problem formulation.

Constraints correspond to primal variables that are used. It can happen that we are able to produce one (or more) new dual

constraints (corresponding to primal variables that are not considered in the problem) violated by current optimal dual solution ππππ*.

Then by adding these new constraints we are potentially able to decrease the optimal dual solution (since we are add constraints).

If we decrease the dual maximum then we decrease the primal minimum as W* = F*.

Besides, if we are not able to eliminate current ππππ* then the current primal solution is optimal in the general sense (with all potential primal variables included).

Page 2: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 2

example - path generation:

flow allocation problem – LP formulation

variables xdp flow realizing demand d on path p

constraints Σp xdp = hd d=1,2,…,D Σd Σp δedpxdp ≤ ce e=1,2,…,E flow variables are continuous and non-negative

D+E non-zero flows at most depending on the number of saturated links if all links unsaturated: D flows only!

How to define the proper lists of paths? By path generation.

Page 3: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 3

flow allocation problem

– adjusted formulation

variables xdp flow realizing demand d on path p z auxiliary variable

objective minimize z

constraints Σp xdp = hd d=1,2,…,D (λd - unconstrained) Σd Σp δedpxdp ≤ ce+ z e=1,2,…,E (πe ≥ 0) flow variables are continuous and non-negative, z is continuous

Page 4: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 4

dual

L(x,z; ππππ,λλλλ) = z + Σd λd(hd - Σp xdp) + Σe πe(Σd Σp δedpxdp - ce- z) xdp ≥ 0 for all (d,p)

W(ππππ,λλλλ) = minx≥0,z L(x,z; ππππ,λλλλ)

Dual maximize W(ππππ,λλλλ) = Σd λdhd - Σe πece

subject to Σe πe = 1 λd ≤ Σe δedpπe d=1,2,…,D p=1,2,...,Pd

πe ≥ 0 e=1,2,...,E

Page 5: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 5

path generation - the reason

Dual maximize Σd λdhd - Σe πece

subject to Σe πe = 1 λd ≤ Σe δedpπe d=1,2,…,D p=1,2,...,Pd

πe ≥ 0 e=1,2,...,E

if we can find a path shorter than ΣΣΣΣe δδδδedpππππe* then we will get a more constrained dual problem and hence have a chance to improve (decrease) the optimal dual value

shortest path algorithm can be used for finding shortest paths withrespect to ππππ*

Page 6: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 6

path generation - how it works

We can start with only one single path on the list for each demand (Pd = 1 for all d).

Then we solve the extended problem and add one shortest path foreach demand d (if such a path, i.e., a path shorter than all the paths on the current list for demand d, exists).

This process will terminate typically (although not always) after onlyseveral steps.

Cycling may occur, so it is better not to remove paths.

Section 5.4.2

Page 7: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 7

path generation

note that in the link-path formulation the lists of candidate paths arepredefined

using of full lists is not realistic (exponential number of paths)

optimal dual multipliers πe assocoated with capacity constraints areused to generate new shortest paths

the paths can be generated using Dijkstra (or some other shortest pathalgorithm), e.g., with limited number of hops

Page 8: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 8

Benders’ decomposition:

projecting out some variables

LP:

maximize z = cysubject to Ax + Dy ≤ b, x, y ≥ 0

The problem has the feasible polyhedron P in (x,y)-space. The idea is to get an equivalent problem only in variables y in

polyhedron Q in the y-space. Q is the projection of P onto the y-space.

LP:

maximize z = cysubject to Ey ≤ g, y ≥ 0

Lasdon, Minoux

Page 9: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 9

Benders’ decomposition:

dimensioning problem (LP or MIP)

variables xdp flow realizing demand d on path p (continuous) ye link capacities, continuous (LP) or integer (MIP)

objective minimize Σe ξeye

constraints Σp xdp = hd d=1,2,…,D Σd Σp δedpxdp ≤ ye e=1,2,…,E

Page 10: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 10

Benders’ decomposition

iterative process

eliminate flow variables x introduce new constraints on y

Section 5.4.3

Page 11: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 11

BD scheme

Step 0 ΩΩΩΩ := ye ≥ 0 : e=1,2,...,E (set of inequality constraints on y)

Step 1: solve master problem (y*) minimize Σe ξeye

subject to ΩΩΩΩ Step 2: perform the feasibility test ( ππππ*,λλλλ*)

maximize W(ππππ,λλλλ) = Σd λdhd - Σe πeye* subject to

Σe πe = 1 λd ≤ Σe δedpπe d=1,2,…,D p=1,2,...,Pd

πe ≥ 0 e=1,2,...,Eif W(ππππ*,λλλλ*) > 0 then add inequality Σd λd*hd - Σe πe* ye ≤ 0 to ΩΩΩΩ

Step 3: if new inequality is added then go to Step 1, otherwise STOP

Page 12: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 12

BD scheme - remarks

In MP there are no flow variables FT is a dual to the flow allocation problem:

objective minimize z constraints

Σp xdp = hd d=1,2,…,D (λd - unconstrained) Σd Σp δedpxdp ≤ ye*+ z e=1,2,…,E (πe ≥ 0) flow variables are continuous and non-negative, z is

continuous Problem: too many constraints Can be much effective than the direct approach for the MIP

version

Page 13: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 13

IPs and MIPs

Integer Program (IP)

maximize z = cxsubject to Ax ≤ b, x ≥ 0 (linear constraints)

x integer (integrality constraint)

Mixed Integer Program (MIP)

maximize z = cx + dysubject to Ax + Dy ≤ b, x, y ≥ 0 (linear constraints)

x integer (integrality constraint)

Page 14: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 14

IP and MIP: example

IP MIP

maximize z = 5x1 + 5x2 maximize z = 2x1 - 2y1

subject to 2x1 + x2 ≤ 10 subject to -2x1 – y1 ≤ -3x1 + 2x2 ≤ 10 5x1 – 2y1 ≤ 17

x1 ≥ 0, x2 ≥ 0 and integer – 2y1 ≤ -1

x1 ≥ 0 and integery1 ≥ 0

7

6

5

4

3

2

1

6 754321

7

6

5

4

3

2

1

6 754321

max 5x 1 + 5x2

max 2x 1 – 2y1

x1

x2 y1

x1

Page 15: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 15

MIP and its linear relaxation

Linear Relaxation (MIP LP)

maximize z = cx (zLPMIP)

subject to Ax ≤ b, x ≥ 0 (linear constraints)

Mixed Integer Program (MIP)

maximize z = cx + dy (zMIP)

subject to Ax + Dy ≤ b, x, y ≥ 0 (linear constraints)x integer (integrality constraint)

Assume rational data. Then: zMIP ≤ zLP

MIP

If MIPLP infeasible (zLPMIP = -∞) then MIP ineasible (zMIP = -∞)

If MIPLP unboubed (zLPMIP = +∞) then MIP either ineasible or unbounded (zMIP = +∞).

If optimal solution to MIPLP happens to be integer in x then it is an optimal solution to MIP.

Page 16: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 16

optimization methods for MIP and IP

no hope for efficient (polynomial time) exact general methods main stream for achieving exact solutions:

branch-and-bound branch-and-cut

based on using LP can be enhanced with Lagrangean relaxation

dynamic programming

stochastic heuristics evolutionary algorithms, simulated annenaling, etc.

Page 17: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 17

general B&B algorithim for the pure binary case

Problem P minimize z = cx subject to Ax ≤ b

xi ∈ 0,1, i=1,2,...,n

NU, N0, N1 ⊆ 1,2,...,n partition of N = 1,2,...,n

P(NU,N0,N1) – relaxed problem in continuous variables xi, i ∈ NU

0 ≤ xi ≤ 1, i ∈ NU

xi = 0, i ∈ N0

xi = 1, i ∈ N1

zbest = +∞ upper bound (or the best known feasible solution of problem P)

Page 18: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 18

B&B for the pure binary case - algorithm

procedure BBB(NU,N0,N1)

beginsolution(NU,N0,N1,x,z); solve P(NU,N0,N1)

if NU = ∅ or for all i ∈ NU xi are binary thenif z < zbest then begin zbest := z; xbest := x end

elseif z ≥ zbest then

return bounding else

begin branching

choose i ∈ NU such that xi is fractional;BBB(NU \ i ,N0∪ i ,N1); BBB(NU \ i ,N0,N1∪ i )

endend procedure

Page 19: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 19

original problem:(IP) maximise cx

subject to Ax ≤ bx ≥ 0 and integer

linear relaxation:(LR) maximise cx

subject to Ax ≤ bx ≥ 0

B&B - example

• The optimal objective value for (LR) is greater than or equal to

the optimal objective for (IP).• If (LR) is infeasible then so is (IP).

• If (LR) is optimised by integer variables, then that solution

is feasible and optimal for (IP).• If the cost coefficients c are integer, then the optimal objective for (IP)

is less than or equal to the “round down” of the optimal objective for (LR).

Page 20: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 20

B&B - knapsack problem

maximise 8x1 + 11x2 + 6x3+ 4x4

subject to 5x1 + 7x2 + 4x3 + 3x4 ≤ 14xj ∈ 0,1 , j=1,2,3,4

(LR) solution: x1 = 1, x2 = 1, x3 = 0.5, x4 = 0, z = 22 no integer solution will have value greater than 22

Fractional

z = 22

x3 = 0

Fractional

z = 21.65

x3 = 1

Fractional

z = 21.85

add the constraint to (LR)

x1 = 1, x2 = 1, x3 = 0, x4 = 0.667 x1 = 1, x2 = 0.714, x3 = 1, x4 = 0

Page 21: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 21

• we know that the optimal integer solution is not greater than 21.85 (21 in fact)

• we will take a subproblem and branch on one of its variables

- we choose an active subproblem (here: not chosen before)- we choose a subproblem with highest solution value

B&B example cntd.Fractional

z = 22

x3 = 0

Fractional

z = 21.65

x3 = 1

Fractional

z = 21.85

x1 = 1, x2 = 0, x3 = 1, x4 = 1x1 = 0.6, x2 = 1, x3 = 1, x4 = 0

x3 = 1, x2 = 0

Integer

z = 18

INTEGER

x3 = 1, x2 = 1

Fractional

z = 21.8

no further branching, not active

Page 22: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 22

B&B example cntd.Fractional

z = 22

x3 = 0

Fractional

z = 21.65

x3 = 1

Fractional

z = 21.85

x1 = 0, x2 = 1, x3 = 1, x4 = 1 x1 = 1, x2 = 1, x3 = 1, x4 = ?

x3 = 1, x2 = 0

Integer

z = 18

INTEGER

x3 = 1, x2 = 1

Fractional

z = 21.8

x3 = 1, x2 = 1, x1 = 0

Integer

z = 21

INTEGER

x3 = 1, x2 = 1, x1 = 1

Infeasible

INFEASIBLE

there is no better solution

than 21: fathom

optimal

Page 23: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 23

B&B example - summary

Solve the linear relaxation of the problem. If the solution is integer, then we are done. Otherwise create two new subproblems by branching on a fractional variable.

A subproblem is not active when any of the following occurs:

you have already used the subproblem to branch on

all variables in the solution are integer the subproblem is infeasible

you can fathom the subproblem by a bounding argument.

Choose an active subproblem and branch on a fractional variable. Repeat until there are no active subproblems.

Remarks If x is restricted to integer (but not necessarily to 0 or 1), then if x = 4.27 you would

branch with the constraints x ≤ 4 and x ≥ 5. If some variables are not restricted to integer you do not branch on them.

Page 24: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 24

single-path allocation problem – IP formulation

variables udp binary flow realizing demand d on path p

constraints Σp udp = 1 d=1,2,…,D Σd Σp δedphdudp ≤ ce e=1,2,…,E

???

Page 25: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 25

single-path allocation problem – modified IP formulation

variables udp binary flow realizing demand d on path p

minimize z

constraints Σp udp = 1 d=1,2,…,D Σd Σp δedphdudp ≤ ce + z e=1,2,…,E

Page 26: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 26

B&B for the binary case - example

c=0

c=4

c=9

h1=10h2=4

all relaxed

z = 0.33

u11=0.033, u12=0.933, u13=0.033u21=0, u22=0, u23=1

u11=0

z = 0.33u11=1

z = 10

u11=0, u12=0z = 6 (integer)

u11=0, u12=1

z = 1 (int. opt.)

u11=0, u12=0, u13=1u21=0, u22=1, u23=0

u11=0, u12=1, u13=0u21=0, u22=0, u23=1

Page 27: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 27

General B&B algorithim for the mixed binary case

Problem P minimize z = cx subject to Ax ≤ b

xi ∈ 0,1, i=1,2,...,k

xi ≥ 0, i=k+1,k+2,...,n

NU, N0, N1 ⊆ 1,2,...,k partition of 1,2,...,k P(NU,N0,N1) – relaxed problem in continuous variables xi,

i ∈ NU∪k+1,k+2,...,n

0 ≤ xi ≤ 1, i ∈ NU

xi ≥ 0, i=k+1,k+2,...,n xi = 0, i ∈ N0

xi = 1, i ∈ N1

zbest = +∞ upper bound (or the best known feasible solution of problem P)

Page 28: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 28

B&B for the mixed binary case - algorithm

procedure BBB(NU,N0,N1)

beginsolution(NU,N0,N1,x,z); solve P(NU,N0,N1)

if NU = ∅ or for all i ∈ NU xi are binary thenif z < zbest then begin zbest := z; xbest := x end

elseif z ≥ zbest then

return bounding else

begin branching

choose i ∈ NU such that xi is fractional;BBB(NU \ i ,N0∪ i ,N1); BBB(NU \ i ,N0,N1∪ i )

endend procedure

Page 29: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 29

General B&B algorithim for the integer case

Problem P minimize z = cx subject to Ax ≤ b

xj non-negative integer, j=1,2,...,k

xj ≥ 0, continuous, j=k+1,k+2,...,n

Direct BB procedure: Set of inequalities Ω = node of the BB tree:

0 ≤ dj(Ω) ≤ xj ≤ gj(Ω) ≤ Mj, j=1,2,...,k

Problem P(Ω) minimize z = cx (z(Ω))

subject to Ax ≤ b dj(Ω) ≤ xj ≤ gj(Ω), j=1,2,...,k (x’(Ω)) xj ≥ 0, continuous, j=k+1,k+2,...,n (x”(Ω))

Page 30: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 30

B&B for the integer case - algorithm

procedure BBI(Ω) begin

solution(Ω,z(Ω),x’(Ω),x”(Ω)); solve P(Ω)

if integer(x’(Ω)) thenif z(Ω) < zbest then begin zbest := z; xbest := (x’(Ω),x”(Ω)) end

else x’ contains non-integer componenets

if z(Ω) ≥ zbest thenreturn bounding

elsebegin branching

choose index j of one of the non-integer components of x’(Ω);

BBI(Ω \ dj(Ω) ≤ xj ≤ gj(Ω) ∪ dj(Ω) ≤ xj ≤ xj(Ω) );

BBI(Ω \ dj(Ω) ≤ xj ≤ gj(Ω) ∪ xj(Ω) ≤ xj ≤ gj(Ω) );end

end procedure

Page 31: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 31

B&B algorithim - comments

Also, integer MIP can always be converted into binary MIPtransformation: xj = 20uj0 + 21uj1 + ... + 2qujq (xj ≤ 2q+1 -1)

Lagrangean relaxation can also be used for finding lower bounds (instead of linear relaxation).

Branch-and-Cut (B&C ) combination of B&B with the cutting plane method the most effective exact approach to NP-complete MIPs idea: add „valid inequalities” which define the facets of the integer

polyhedron the valid inequalities generation is problem dependent, and not based on

general „formulas”as for the cutting plane method (e.g., Gomory fractional cuts)

Page 32: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 32

cutting plane method for MIPs (Gomory)

Definitions

P(A,D,b) = (x,y) ∈Rn+p: Ax + Dy ≤ b, x ≥ 0, y ≥ 0 – MIPLP domain

DM = (x,y) ∈Zn×Rp: Ax + Dy ≤ b, x ≥ 0, y ≥ 0 – MIP domain

An inequality fx + gy ≤ f0 is called a valid inequality for MIP if

fx + gy ≤ f0 for all (x,y) ∈ DM A valid inequality for MIP is a cut (or cutting plane) if

P(A,D,b) ∩ (x,y) ∈Rn+p: fx + gy ≤ f0 ⊂ P(A,D,b) where the containment is proper

Note that MIP is equivalent to LP: max cx + dy: (x,y) ∈∈∈∈ Conv(DM)

In a tutorial by Manfred Padberg: „Cutting Plane Methods for Mixed-Integer Programming”

Page 33: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 33

conv(DM)

IP MIP

maximize z = 5x1 + 5x2 maximize z = 2x1 - 2y1

subject to 2x1 + x2 ≤ 10 subject to -2x1 – y1 ≤ -3x1 + 2x2 ≤ 10 5x1 – 2y1 ≤ 17

x1 ≥ 0, x2 ≥ 0 and integer – 2y1 ≤ -1

x1 ≥ 0 and integery1 ≥ 0

7

6

5

4

3

2

1

6 754321

7

6

5

4

3

2

1

6 754321x1

x2 y1

x1

Page 34: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 34

cutting plane method - continued

Let P0 = P(A,D,b) = (x,y) ∈Rn+p: Ax + Dy ≤ b, x ≥ 0, y ≥ 0 and z0 = cx 0 + dy0 = max cx + dy : (x,y) ∈P0

If x0 ∈ Zn or z0 ∈ -∞,+∞ then STOP.

Otherwise, let F be a family of cuts for MIP, such that fx 0 + gy0 > f0for all (f,g,f0) ∈ F.Let P1 = P0 ∩ (x,y) ∈Rn+p: fx + gy ≤ f0 for all (f,g,f0) ∈ F ⊂ P0

and z1 = cx 1 + dy1 = max cx + dy : (x,y) ∈P1 .

Page 35: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 35

cutting plane method - continued

Note that DM ⊆ P1 ⊂ P0 and we can iterate, generating a sequence of polyhedra

P0 ⊃ P1 ⊃ ... ⊃ Pk ⊃ Pk+1 ⊃ ... ⊇ conv(DM) ⊇ DM

such that

zk+1 = cx k+1 + dy k+1 ≤ zk = cx k + dyk

where zk = cx k + dy k = max cx + dy : (x,y) ∈Pk .

We stop when xk ∈ Zn or zk = -∞ (i.e., when Pk = ∅).

Page 36: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 36

illustration

IP MIP

maximize z = 5x1 + 5x2 maximize z = 2x1 - 2y1

subject to 2x1 + x2 ≤ 10 subject to -2x1 – y1 ≤ -3x1 + 2x2 ≤ 10 5x1 – 2y1 ≤ 17

x1 ≥ 0, x2 ≥ 0 and integer – 2y1 ≤ -1

x1 ≥ 0 and integery1 ≥ 0

7

6

5

4

3

2

1

6 754321

7

6

5

4

3

2

1

6 754321

max 5x 1 + 5x2

max 2x 1 – 2y1

x1

x2 y1

x1

Cut: x 1 + x2 ≤ 6 Cut: 2x 1 - 2x2 ≤ 5

Page 37: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 37

Chvátal-Gomory valid inequalities

For the set X = x ∈ Rn+ : Ax ≤ b ∩ Zn ( A is m x n, aj is its j-th column)

and any u ∈ Rn+ the following are valid inequalities:

Σj=1,2,...,n ua j xj ≤ ub ( because u ≥ 0 )

Σj=1,2,...,n ua j xj ≤ bu ( because x ≥ 0 )

Σj=1,2,...,n ua j xj ≤ bu ( because the left hand side is integer )

Theorem:

Every valid inequality for X can be obtained by applying the Chvátal-Gomory procedure a finite number of times.

Page 38: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 38

Gomory cutting plane method – details for IP

Wolsey – Integer Programming

Integer Program (IP)

maximize z = cx (zIP)

subject to Ax = b, x ≥ 0 (linear constraints)x integer (integrality constraint)

Idea solve the associated LP relaxation

find optimal basis choose a basic variable that is not integer

generate the Chvátal-Gomory inequality using the constraint associated with this basic variable to cut-off the current relaxed solution

Page 39: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 39

the inequalityfrom the final simplex tableau:

max c + Σj∈NB cj xj

xu + Σj∈NB auj xj = bu for u=1,2,...,mx ≥ 0

(where cj ≤ 0 for j ∈NB, bu ≥ 0 for u=1,2,...,m)

take u with fractional bu and add the cut:

xu + Σj∈NB auj xj ≤ bu

this inequality cuts off the current fractional solution x*

Note that the new slack variable

s = - f0 + Σj∈NB fj xj

is a non-negative integer.

Equivalently, by eliminating xu:

Σj∈NB (auj - auj ) xj ≥ bu- bu

or Σj∈NB fj xj ≥ f0where fj = auj - auj for j ∈ NB, f0 = bu - bu

Page 40: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 40

the inequality for MIP – Gomory mixed integer cut

xu + Σj∈NB1 auj xj + Σj∈NB2 auj yj = bu for some u=1,2,...,m, bu ≥ 0 and fractional

fj = auj - auj for j ∈ NB1 ∪ NB2, f0 = bu - bu

Σfj ≤ f0 xj fj + Σfj > f0 xj (f0(1 - fj))/(1 - f0) + Σauj > 0 yj auj + Σauj < 0 yj auj f0/(1 - f0) ≥ f0

this inequality cuts off the current fractional solution (x*,y*)

Mixed Integer Program (MIP)maximize z = cx + dy (zMIP)

subject to Ax + Dy = b, x, y ≥ 0 (linear constraints)x integer (integrality constraint)

Page 41: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 41

cutting plane method - discussion

Is it always possible to find a cut that cuts off the LP optimum?

YES – the previous methods.

Does there exist a cut generation mechanism which guarantees the finite number of steps?

NO, only for IP (certainly, the number of iterations is in general exponential).

For mixed binary programs this is an open question. For MIPs finite converge is guaranteed if the objective function is integer valued.

Page 42: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 42

lifted cover inequalities

knapsack inequality: Σi ai xi ≤ b xi ∈ 0,1

cover inequality: Σi ∈C xi ≤ |C| - 1 C ⊆ 1,2,...,n lifted cover inequality: Σi ∈C xi + Σi ∈N\C αixi ≤ |C| - 1 0 ≤ αi ≤ |C| - 1

K.Kaparis& A.N.Letchford

[x1,x2,x3]

x4

x5

Step 0: find a minimal cover

KI: x1 + x2 + 2x3 + 2x4+ 3x5 ≤ 3CI: x1 + x2 + x3 ≤ 2

Step 1: assume x4 = 1

max Σi=13 xi : x1+ x2+ 2x3 + 2 ≤ 3 = 1; α4= 2 – 1 = 1

LCI: x1+ x2 + x3 + x4 ≤ 2

Step 2: assume x5 = 1

max Σi=14 xi : x1+ x2+ 2x3 + 2x4 + 3 ≤ 3 = 0;

α5 = 2 - 0 = 2LCI: x1+ x2 + x3 + x4 + 2x5 ≤ 2

Page 43: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 43

problem-dependent generation of cuts (separators)

Let P = Conv DM = polyhedron for MIP

Let SP = set of all valid inequalities for P

= (f,g,f0) ∈ Rn+p+1 : P ⊆ (x,y) ∈Rn+p : fx + gy ≤ f0

Ideally:minimize G(f,g,f0) over all (f,g,f0) ∈ SPwhere

G(f,g,f0) = max z = cx + dy : (x,y) ∈ Pk ∩ (x,y)∈Rn+p : fx + gy ≤ f0 (we want to a separator that drives the objective function down as fast as possible)

Too difficult: In practice we try to find a most violated separator :maximize fxk + gyk - f0

over all (f,g,f0) ∈ SP such that f+ g = 1

10100 facets, two suffice (outer cone)

Page 44: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 44

separation theorem

The polyhedral separation problem for P:

Given (x,y) ∈Rn+p either

(i) conclude that (x,y) ∈ P(ii) find a most violated separator (cut) (f,g,f0) ∈ SP

(such that f+ g = 1) for (x,y) and P.

TheoremMIP is solvable in polynomial time if and only if

the polyhedral separation problem is solvable in polynomial time.

Still, even though generating cuts is in general difficult for difficult MIPs, there is a chance to effectively generate good cuts.

Page 45: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 45

B&B algorithims - comments

A priori addition of cuts at the root of the B&B tree – only a limited number

Branch-and-Cut (B&C ) combination of B&B with the cutting plane method the most effective exact approach to MIPs idea: add „valid inequalities” which define the facets of the integer

polyhedron generation of valid inequalities can be problem dependent, and not

necessarily based on general „formulas”as for the cutting plane method(e.g., Gomory fractional cuts)

Branch-and-Price (B&P) combination of B&B and column generation

B&C&P as well

Page 46: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 46

IP (and MIP) is NP-hard

SATISFIABILTY PROBLEM (SAT) can be expressed as IP even as a binary program (all integer variables are binary)

Every real-life problem can be modeled(with a sufficient accuracy) as a MIP!

Page 47: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 47

X - set of vectors x = (x1,x2,...,xn)

x ∈ X iff Ax ≤ b and x are integers

Decision problem:Instance: given n, A, b, C, and linear function f(x).

Question: is there x ∈ X such that f(x) ≤ C?

The SAT problem is directly reducible to a binary IP problem. assign binary variables xi and xi with each Boolean variables ui and ui

an inequality for each clause of the instance of SAT (x1 + x2 + x4 ≥ 1) add inequalities: xi + xi = 1, i=1,2,...,n

Integer Programming is NP-hard

Page 48: dual separation in LP and column generationwits.gist.ac.kr/uploads/Main/netwrok optimization - parts... ·  · 2011-11-22MichałPióro 1 dual separation in LP and column generation

Michał Pióro 48

Why LPs, MIPs, and IPs are so important?

in practice only LP guarantees efficient solutions

decomposition methods are available for LPs

all real-life problems can be expressed as MIPs!

MIPs and IPs can be solved by general solvers by the branch-

and-cut method, based on LP

CPLEX, XPRESS

sometimes very efficiently

otherwise, we have to use (frequently) unreliable stochastic

meta-heuristics (sometimes specialized heuristics)