# cutting plane algorithm, gomory cuts, and disjunctive .optintro 1/37 cutting plane algorithm, gomory

Post on 09-Sep-2018

212 views

Embed Size (px)

TRANSCRIPT

OptIntro 1 / 37

Cutting Plane Algorithm, Gomory Cuts, andDisjunctive Cuts

Eduardo Camponogara

Department of Automation and Systems EngineeringFederal University of Santa Catarina

October 2016

OptIntro 2 / 37

Summary

Cutting-Plane Algorithm

Gomory Cuts

Disjunctive Cuts

OptIntro 3 / 37

Cutting-Plane Algorithm

Summary

Cutting-Plane Algorithm

Gomory Cuts

Disjunctive Cuts

OptIntro 4 / 37

Cutting-Plane Algorithm

Cutting-Plane Algorithm: Principles

I Assume that that feasible set is X = P Zn.I Let F be a family of valid inequalities for X :

T x 6 0, (, 0) F ,

I Typically, F may contain a large number of elements (exponentiallymany).

I Thus we cannot introduce all inequalities a priori.

I From a practical standpoint, we dont need a full representation ofconv(X ), only an approximation around the optimal solution.

OptIntro 4 / 37

Cutting-Plane Algorithm

Cutting-Plane Algorithm: Principles

I Assume that that feasible set is X = P Zn.I Let F be a family of valid inequalities for X :

T x 6 0, (, 0) F ,

I Typically, F may contain a large number of elements (exponentiallymany).

I Thus we cannot introduce all inequalities a priori.

I From a practical standpoint, we dont need a full representation ofconv(X ), only an approximation around the optimal solution.

OptIntro 4 / 37

Cutting-Plane Algorithm

Cutting-Plane Algorithm: Principles

I Assume that that feasible set is X = P Zn.I Let F be a family of valid inequalities for X :

T x 6 0, (, 0) F ,

I Typically, F may contain a large number of elements (exponentiallymany).

I Thus we cannot introduce all inequalities a priori.

I From a practical standpoint, we dont need a full representation ofconv(X ), only an approximation around the optimal solution.

OptIntro 5 / 37

Cutting-Plane Algorithm

Cutting-Plane Algorithm

Here we present a baseline cutting-plane algorithm for

IP : max{cT x ; x X}

, which generates useful cuts from the family F .

OptIntro 6 / 37

Cutting-Plane Algorithm

Cutting-Plane Algorithm

InitializationDefine t = 0 and P0 = P

Iteration TSolve the linear program z t = max{cT x : x P t}Let x t be an optimal solutionIf x t Zn, stop since x t is an optimal solution for IPIf x t / Zn, find an inequality (, 0) F

such that T x t > 0If an inequality (, 0) was found,

then do P t+1 = P t {x : T x 6 0},increase t and repeat

Otherwise, stop

OptIntro 7 / 37

Cutting-Plane Algorithm

Valid Inequalities

I If the algorithm terminates without finding an integersolution, at least

Pt = P {x : Ti 6 i0, i = 1, 2, . . . , t}

is a tighter formulation than the initial formulation P.

I We can proceed from Pt with a branch-and-bound algorithm.

OptIntro 7 / 37

Cutting-Plane Algorithm

Valid Inequalities

I If the algorithm terminates without finding an integersolution, at least

Pt = P {x : Ti 6 i0, i = 1, 2, . . . , t}

is a tighter formulation than the initial formulation P.

I We can proceed from Pt with a branch-and-bound algorithm.

OptIntro 8 / 37

Gomory Cuts

Summary

Cutting-Plane Algorithm

Gomory Cuts

Disjunctive Cuts

OptIntro 9 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

I Here we concentrate in the following integer program:

max {cT x : Ax = b, x > 0 and integer}

I The strategy is to solve the linear relaxation and find an optimalbasis.

I From the optimal basis, we choose a fractional basic variable.

I Then we generate a Chvatal-Gomory cut associated with this basicvariable, aiming to cut it off, that is, eliminate this solution from therelaxation polyhedron.

OptIntro 9 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

I Here we concentrate in the following integer program:

max {cT x : Ax = b, x > 0 and integer}

I The strategy is to solve the linear relaxation and find an optimalbasis.

I From the optimal basis, we choose a fractional basic variable.

I Then we generate a Chvatal-Gomory cut associated with this basicvariable, aiming to cut it off, that is, eliminate this solution from therelaxation polyhedron.

OptIntro 10 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

Given an optimal basis, the problem/dictionary can be expressedas:

max aoo +

jNBaojxj

s.t.: xBu +

jNBaujxj = auo for u = 1, . . . ,m

x > 0 and integer

where:

1. aoj 6 0 for j NB,2. auo > 0 for u = 1, . . . ,m, and

3. NB is the set of nonbasic variables, therefore{Bu : u = 1, . . . ,m} NB = {1, . . . , n}.

OptIntro 11 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

I If the optimal basic solution x is not integer, then there mustexist a row u such that auo / Z.

I Choosing this row, the Chvatal-Gomory for the row ubecomes:

xBu +jNBbaujcxj 6 bauoc (1)

I Rewriting (1) so as to eliminate xBu, we obtain:

xBu = auo jNB

aujxj (2)

OptIntro 11 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

I If the optimal basic solution x is not integer, then there mustexist a row u such that auo / Z.

I Choosing this row, the Chvatal-Gomory for the row ubecomes:

xBu +jNBbaujcxj 6 bauoc (1)

I Rewriting (1) so as to eliminate xBu, we obtain:

xBu = auo jNB

aujxj (2)

OptIntro 11 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

I If the optimal basic solution x is not integer, then there mustexist a row u such that auo / Z.

I Choosing this row, the Chvatal-Gomory for the row ubecomes:

xBu +jNBbaujcxj 6 bauoc (1)

I Rewriting (1) so as to eliminate xBu, we obtain:

xBu = auo jNB

aujxj (2)

OptIntro 12 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

From (2), we deduce that:

auo jNB

aujxj +jNBbaujcxj 6 bauoc

=jNB

(auj baujc) xj > auo bauoc (3)

OptIntro 13 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

In a more compact form, we can rewrite the cutting plane:jNB

(auj baujc) xj > auo bauoc

as: jNB

fujxj > fuo (4)

in which:

I fuj = auj baujc andI fuo = auo bauoc.

OptIntro 14 / 37

Gomory Cuts

Cutting-Plane Algorithm with Gomory Cuts

RemarkSince 0 6 fuj < 1 and 0 < fuo < 1, and xj = 0 for each variablej NB in the solution x, the inequality

jNBfujxj > fuo

cuts off the incumbent solution x.

OptIntro 15 / 37

Gomory Cuts

Example

Example

Consider the integer program:

z = max 4x1 x2s.t. : 7x1 2x2 6 14

x2 6 32x1 2x2 6 3x1, x2 > 0, integer

(5)

OptIntro 16 / 37

Gomory Cuts

Example

Example

After introducing slack variables x3, x4 and x5, we can apply the Simplexmethod and obtain an optimal solution:

max 597 47x3

17x4

s.t. : x1 +17x3 +

27x4 =

207 (= 2.8571)

x2 + x4 = 3 27x3 +

107 x4 + x5 =

237 (= 3.2857)

x1, x2, x3, x4, x5 > 0 and integer(6)

OptIntro 17 / 37

Gomory Cuts

Example

Example

I The optimal solution for the linear relaxation isx = ( 207 , 3,

277 , 0, 0) / Z

5+.

I Thus, we use the first row of (6), in which the basic variables x1 isfractional.

I This generates the cut:

x1 + b 17cx3 + b27cx4 6 b

207 c = x1 6 2

OptIntro 17 / 37

Gomory Cuts

Example

Example

I The optimal solution for the linear relaxation isx = ( 207 , 3,

277 , 0, 0) / Z

5+.

I Thus, we use the first row of (6), in which the basic variables x1 isfractional.

I This generates the cut:

x1 + b 17cx3 + b27cx4 6 b

207 c = x1 6 2

OptIntro 17 / 37

Gomory Cuts

Example

Example

I The optimal solution for the linear relaxation isx = ( 207 , 3,

277 , 0, 0) / Z

5+.

I Thus, we use the first row of (6), in which the basic variables x1 isfractional.

I This generates the cut:

x1 + b 17cx3 + b27cx4 6 b

207 c = x1 6 2

OptIntro 18 / 37

Gomory Cuts

Example

Example

Introducing a slack variable, we obtain:

x1 + s = 2,x1 =

207

17x3

27x4 =

207

17x3

27x4 + s = 2

= s = 2 207 +17x3 +

27x4

= s = 67 +17x3 +

27x4

with s, x3, x4 > 0 and integer.

OptIntro 19 / 37

Gomory Cuts

Example

Example

Introducing the slack variable s and the cut

s = 67

+1

7x3 +

2

7x4,

we obtain a second formulation:

max 152 12x5 3s

s.t. : x1 + s = 2x2 12x5 + s =

12

x3 x5 5s = 1x4 +

12x5 + 6s =

52

x1, x2, x3, x4, x5, s > 0 and integer.(7)

An optimal solution for the relaxation (7), yields x = (2, 12 , 1,52 , 0, 0).

OptIntro 20 / 37

Gomory Cuts

Example

Example

The incumbent solution remains fractional because x2 and x4 are notinteger.

The application of the Chavatal-Gomory cut on the second row yields:

x2 + b 12cx5 + b1cs 6 b12c = x2 x5 + s 6 0

= x2 x5 + s + t = 0, t > 0= ( 12 +

12x5 s) x5 + s + t = 0

= t 12x5 = 12 , t > 0

OptIntro 20 / 37

Gomory Cu

Recommended