Gomorys cutting plane algorithm for integer programming Prepared

  • Slides: 28
Download presentation
Gomory’s cutting plane algorithm for integer programming Prepared by Shin-ichi Tanigawa

Gomory’s cutting plane algorithm for integer programming Prepared by Shin-ichi Tanigawa

Rounding does not give any useful result

Rounding does not give any useful result

We first solve the LP-relaxation

We first solve the LP-relaxation

Optimize using primal simplex method

Optimize using primal simplex method

Optimize using primal simplex method

Optimize using primal simplex method

Optimize using primal simplex method

Optimize using primal simplex method

The optimal solution is fractional

The optimal solution is fractional

Generating an objective row cut (1)

Generating an objective row cut (1)

Generating an objective row cut (1) (weakening)

Generating an objective row cut (1) (weakening)

Generating an objective row cut (1) (weakening) (2) (for integers)

Generating an objective row cut (1) (weakening) (2) (for integers)

Generating an objective row cut (1) (weakening) (2) (for integers) (2) - (1) Cutting

Generating an objective row cut (1) (weakening) (2) (for integers) (2) - (1) Cutting plane is violated by current optimum solution

Generating an objective row cut (1) (weakening) (2) (for integers) (2) - (1) (substitute

Generating an objective row cut (1) (weakening) (2) (for integers) (2) - (1) (substitute for slacks)

The first cutting plane:

The first cutting plane:

A new slack variable is added:

A new slack variable is added:

The new cut is added to the dictionary

The new cut is added to the dictionary

Re-optimize using dual simplex method

Re-optimize using dual simplex method

Re-optimize using dual simplex method

Re-optimize using dual simplex method

A new fractional solution has been found

A new fractional solution has been found

Generating a constraint row cut (1)

Generating a constraint row cut (1)

Generating a constraint row cut (1) (weaken)

Generating a constraint row cut (1) (weaken)

Generating a constraint row cut (1) (2) (valid for integers)

Generating a constraint row cut (1) (2) (valid for integers)

Generating a constraint row cut (1) (2) – (1)

Generating a constraint row cut (1) (2) – (1)

Generating a constraint row cut (1) (2) – (1)

Generating a constraint row cut (1) (2) – (1)

The second cutting plane

The second cutting plane

Add a new slack variable:

Add a new slack variable:

The new cut is inserted into the optimum dictionary

The new cut is inserted into the optimum dictionary

Re-optimize using dual simplex method

Re-optimize using dual simplex method

The new optimum solution is integral

The new optimum solution is integral