Home > Operation Research calculators > Simplex method example

6. Integer simplex method (gomory's cutting plane method) example ( Enter your problem )
  1. Introduction
  2. Algorithm & Example-1 (Pure integer)
  3. Example-2 (Mixed integer)
Other related methods
  1. Formulate linear programming model
  2. Graphical method
  3. Simplex method (BigM method)
  4. Two-Phase method
  5. Primal to dual conversion
  6. Dual simplex method
  7. Integer simplex method
  8. Branch and Bound method
  9. 0-1 Integer programming problem
  10. Revised Simplex method

1. Introduction
(Previous example)
3. Example-2 (Mixed integer)
(Next example)

2. Algorithm & Example-1 (Pure integer)





Integer simplex method (gomory's cutting plane method)
If the optimal solution is integers, then problem is solved. Otherwise, add Gomory's constraint (cut) is added to optimal solution. Now new problem is solved using dual simplex method The method terminates as soon as optimal solution become integers.
Algorithm
Integer simplex method (gomory's cutting plane method) Steps (Rule)
Step-1: a. Formulate the integer LP problem

b. If any constraint contains non-integer coefficient then convert it into integer.

c. Solve the given problem using Simplex (BigM) method, ignore the integer condition
Step-2: a. Examine the optimal solution. if all the basic variables have integer values, then terminate the process.

b. Otherwise, construct a Gomory's fractional cut from the row, which has the largest fractional part, and add it to the original set of constraints.

Gomory's constraint `-f_r = s_g - sum f_r x`
Step-3: a. Now add this constraint to optimal simplex table.

b. Find a new optimal solution using dual simplex method. and then goto step-2.

Example-1
Find solution using integer simplex method (Gomory's cutting plane method)
MAX Z = x1 + x2
subject to
3x1 + 2x2 <= 5
x2 <= 2
and x1,x2 non-negative integers


Solution:
Problem is
Max `Z``=``````x_1`` + ````x_2`
subject to
```3``x_1`` + ``2``x_2``5`
`````x_2``2`
and `x_1,x_2 >= 0; ``x_1,x_2` non-negative integers


The problem is converted to canonical form by adding slack, surplus and artificial variables as appropiate

1. As the constraint-1 is of type '`<=`' we should add slack variable `S_1`

2. As the constraint-2 is of type '`<=`' we should add slack variable `S_2`

After introducing slack variables
Max `Z``=``````x_1`` + ````x_2`` + ``0``S_1`` + ``0``S_2`
subject to
```3``x_1`` + ``2``x_2`` + ````S_1`=`5`
`````x_2`` + ````S_2`=`2`
and `x_1,x_2,S_1,S_2 >= 0`


Iteration-1 `C_j``1``1``0``0`
`B``C_B``X_B` `x_1` Entering variable`x_2``S_1``S_2`MinRatio
`(X_B)/(x_1)`
 `S_1` Leaving variable`0``5` `(3)`  (pivot element)`2``1``0``(5)/(3)=1.67``->`
`S_2``0``2``0``1``0``1`---
 `Z=0` `0=`
`Z_j=sum C_B X_B`
 `Z_j` `Z_j=sum C_B x_j` `0` `0=0xx3+0xx0`
`Z_j=sum C_B x_1`
 `0` `0=0xx2+0xx1`
`Z_j=sum C_B x_2`
 `0` `0=0xx1+0xx0`
`Z_j=sum C_B S_1`
 `0` `0=0xx0+0xx1`
`Z_j=sum C_B S_2`
`C_j-Z_j` `1` `1=1-0``uarr` `1` `1=1-0` `0` `0=0-0` `0` `0=0-0`


Positive maximum `C_j-Z_j` is `1` and its column index is `1`. So, the entering variable is `x_1`.

Minimum ratio is `1.67` and its row index is `1`. So, the leaving basis variable is `S_1`.

`:.` The pivot element is `3`.

Entering `=x_1`, Departing `=S_1`, Key Element `=3`

`R_1`(new)`= R_1`(old)`-: 3`

`R_2`(new)`= R_2`(old)

Iteration-2 `C_j``1``1``0``0`
`B``C_B``X_B``x_1` `x_2` Entering variable`S_1``S_2`MinRatio
`(X_B)/(x_2)`
`x_1``1` `5/3` `5/3=5-:3`
`R_1`(new)`= R_1`(old)`-: 3`
 `1` `1=3-:3`
`R_1`(new)`= R_1`(old)`-: 3`
 `2/3` `2/3=2-:3`
`R_1`(new)`= R_1`(old)`-: 3`
 `1/3` `1/3=1-:3`
`R_1`(new)`= R_1`(old)`-: 3`
 `0` `0=0-:3`
`R_1`(new)`= R_1`(old)`-: 3`
`(5/3)/(2/3)=2.5`
 `S_2` Leaving variable`0` `2` `2=2`
`R_2`(new)`= R_2`(old)
 `0` `0=0`
`R_2`(new)`= R_2`(old)
 `(1)` `1=1` (pivot element)
`R_2`(new)`= R_2`(old)
 `0` `0=0`
`R_2`(new)`= R_2`(old)
 `1` `1=1`
`R_2`(new)`= R_2`(old)
`(2)/(1)=2``->`
 `Z=5/3` `5/3=1xx5/3`
`Z_j=sum C_B X_B`
 `Z_j` `Z_j=sum C_B x_j` `1` `1=1xx1+0xx0`
`Z_j=sum C_B x_1`
 `2/3` `2/3=1xx2/3+0xx1`
`Z_j=sum C_B x_2`
 `1/3` `1/3=1xx1/3+0xx0`
`Z_j=sum C_B S_1`
 `0` `0=1xx0+0xx1`
`Z_j=sum C_B S_2`
`C_j-Z_j` `0` `0=1-1` `1/3` `1/3=1-2/3``uarr` `-1/3` `-1/3=0-1/3` `0` `0=0-0`


Positive maximum `C_j-Z_j` is `1/3` and its column index is `2`. So, the entering variable is `x_2`.

Minimum ratio is `2` and its row index is `2`. So, the leaving basis variable is `S_2`.

`:.` The pivot element is `1`.

Entering `=x_2`, Departing `=S_2`, Key Element `=1`

`R_2`(new)`= R_2`(old)

`R_1`(new)`= R_1`(old)`- 2/3 R_2`(new)

Iteration-3 `C_j``1``1``0``0`
`B``C_B``X_B``x_1``x_2``S_1``S_2`MinRatio
`x_1``1` `1/3` `1/3=5/3-2/3xx2`
`R_1`(new)`= R_1`(old)`- 2/3 R_2`(new)
 `1` `1=1-2/3xx0`
`R_1`(new)`= R_1`(old)`- 2/3 R_2`(new)
 `0` `0=2/3-2/3xx1`
`R_1`(new)`= R_1`(old)`- 2/3 R_2`(new)
 `1/3` `1/3=1/3-2/3xx0`
`R_1`(new)`= R_1`(old)`- 2/3 R_2`(new)
 `-2/3` `-2/3=0-2/3xx1`
`R_1`(new)`= R_1`(old)`- 2/3 R_2`(new)
`x_2``1` `2` `2=2`
`R_2`(new)`= R_2`(old)
 `0` `0=0`
`R_2`(new)`= R_2`(old)
 `1` `1=1`
`R_2`(new)`= R_2`(old)
 `0` `0=0`
`R_2`(new)`= R_2`(old)
 `1` `1=1`
`R_2`(new)`= R_2`(old)
 `Z=7/3` `7/3=1xx1/3+1xx2`
`Z_j=sum C_B X_B`
 `Z_j` `Z_j=sum C_B x_j` `1` `1=1xx1+1xx0`
`Z_j=sum C_B x_1`
 `1` `1=1xx0+1xx1`
`Z_j=sum C_B x_2`
 `1/3` `1/3=1xx1/3+1xx0`
`Z_j=sum C_B S_1`
 `1/3` `1/3=1xx(-2/3)+1xx1`
`Z_j=sum C_B S_2`
`C_j-Z_j` `0` `0=1-1` `0` `0=1-1` `-1/3` `-1/3=0-1/3` `-1/3` `-1/3=0-1/3`


Since all `C_j-Z_j <= 0`

Hence, non-integer optimal solution is arrived with value of variables as :
`x_1=1/3,x_2=2`

Max `Z = 7/3`

To obtain the integer valued solution, we proceed to construct Gomory's fractional cut, with the help of `x_1`-row as follows:

`1/3= 1 x_1+1/3 S_1 -2/3 S_2`

`(0+1/3)=(1+0) x_1+(0+1/3) S_1+(-1+1/3) S_2`

The fractional cut will become
`-1/3 = Sg1 -1/3 S_1 -1/3 S_2 ->` (Cut-1)

Adding this additional constraint at the bottom of optimal simplex table. The new table so obtained is

Iteration-1 `C_j``1``1``0``0``0`
`B``C_B``X_B``x_1``x_2` `S_1` Entering variable`S_2``Sg1`
`x_1``1``1/3``1``0``1/3``-2/3``0`
`x_2``1``2``0``1``0``1``0`
 `Sg1` Leaving variable`0``-1/3``0``0` `(-1/3)`  (pivot element)`-1/3``1`
 `Z=7/3` `7/3=1xx1/3+1xx2`
`Z_j=sum C_B X_B`
 `Z_j` `Z_j=sum C_B x_j` `1` `1=1xx1+1xx0+0xx0`
`Z_j=sum C_B x_1`
 `1` `1=1xx0+1xx1+0xx0`
`Z_j=sum C_B x_2`
 `1/3` `1/3=1xx1/3+1xx0+0xx(-1/3)`
`Z_j=sum C_B S_1`
 `1/3` `1/3=1xx(-2/3)+1xx1+0xx(-1/3)`
`Z_j=sum C_B S_2`
 `0` `0=1xx0+1xx0+0xx1`
`Z_j=sum C_B Sg1`
`C_j-Z_j` `0` `0=1-1` `0` `0=1-1` `-1/3` `-1/3=0-1/3` `-1/3` `-1/3=0-1/3` `0` `0=0-0`
`"Ratio"=(C_j-Z_j)/(Sg1,j)`
and `Sg1,j<0`
 --- `Sg1,j=0;` which is not `<0` --- `Sg1,j=0;` which is not `<0` `1` `1=(-1/3)/(-1/3)`
`"Ratio"=(C_j-Z_j)/(Sg1,j)`
`uarr`
 `1` `1=(-1/3)/(-1/3)`
`"Ratio"=(C_j-Z_j)/(Sg1,j)`
 --- `Sg1,j=1;` which is not `<0`


Minimum negative `X_B` is `-1/3` and its row index is `3`. So, the leaving basis variable is `Sg1`.

Minimum positive ratio is `1` and its column index is `3`. So, the entering variable is `S_1`.

`:.` The pivot element is `-1/3`.

Entering `=S_1`, Departing `=Sg1`, Key Element `=-1/3`

`R_3`(new)`= R_3`(old)`xx-3`

`R_1`(new)`= R_1`(old)`- 1/3 R_3`(new)

`R_2`(new)`= R_2`(old)

Iteration-2 `C_j``1``1``0``0``0`
`B``C_B``X_B``x_1``x_2``S_1``S_2``Sg1`
`x_1``1` `0` `0=1/3-1/3xx1`
`R_1`(new)`= R_1`(old)`- 1/3 R_3`(new)
 `1` `1=1-1/3xx0`
`R_1`(new)`= R_1`(old)`- 1/3 R_3`(new)
 `0` `0=0-1/3xx0`
`R_1`(new)`= R_1`(old)`- 1/3 R_3`(new)
 `0` `0=1/3-1/3xx1`
`R_1`(new)`= R_1`(old)`- 1/3 R_3`(new)
 `-1` `-1=(-2/3)-1/3xx1`
`R_1`(new)`= R_1`(old)`- 1/3 R_3`(new)
 `1` `1=0-1/3xx(-3)`
`R_1`(new)`= R_1`(old)`- 1/3 R_3`(new)
`x_2``1` `2` `2=2`
`R_2`(new)`= R_2`(old)
 `0` `0=0`
`R_2`(new)`= R_2`(old)
 `1` `1=1`
`R_2`(new)`= R_2`(old)
 `0` `0=0`
`R_2`(new)`= R_2`(old)
 `1` `1=1`
`R_2`(new)`= R_2`(old)
 `0` `0=0`
`R_2`(new)`= R_2`(old)
`S_1``0` `1` `1=(-1/3)xx(-3)`
`R_3`(new)`= R_3`(old)`xx-3`
 `0` `0=0xx(-3)`
`R_3`(new)`= R_3`(old)`xx-3`
 `0` `0=0xx(-3)`
`R_3`(new)`= R_3`(old)`xx-3`
 `1` `1=(-1/3)xx(-3)`
`R_3`(new)`= R_3`(old)`xx-3`
 `1` `1=(-1/3)xx(-3)`
`R_3`(new)`= R_3`(old)`xx-3`
 `-3` `-3=1xx(-3)`
`R_3`(new)`= R_3`(old)`xx-3`
 `Z=2` `2=1xx0+1xx2`
`Z_j=sum C_B X_B`
 `Z_j` `Z_j=sum C_B x_j` `1` `1=1xx1+1xx0+0xx0`
`Z_j=sum C_B x_1`
 `1` `1=1xx0+1xx1+0xx0`
`Z_j=sum C_B x_2`
 `0` `0=1xx0+1xx0+0xx1`
`Z_j=sum C_B S_1`
 `0` `0=1xx(-1)+1xx1+0xx1`
`Z_j=sum C_B S_2`
 `1` `1=1xx1+1xx0+0xx(-3)`
`Z_j=sum C_B Sg1`
`C_j-Z_j` `0` `0=1-1` `0` `0=1-1` `0` `0=0-0` `0` `0=0-0` `-1` `-1=0-1`
Ratio---------------


Since all `C_j-Z_j <= 0`

Hence, integer optimal solution is arrived with value of variables as :
`x_1=0,x_2=2`

Max `Z = 2`

The integer optimal solution found after 1-cuts.



This material is intended as a summary. Use your textbook for detail explanation.
Any bug, improvement, feedback then Submit Here



1. Introduction
(Previous example)
3. Example-2 (Mixed integer)
(Next example)





Share this solution or page with your friends.


 
Copyright © 2023. All rights reserved. Terms, Privacy
 
 

.