gomory’s cutting plane algorithm for integer programming

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

Upload: keona

Post on 12-Feb-2016

225 views

Category:

Documents


1 download

DESCRIPTION

Gomory’s cutting plane algorithm for integer programming. Prepared by Shin-ichi Tanigawa. Rounding does not give any useful result. We first solve the LP-relaxation. Optimize using primal simplex method. Optimize using primal simplex method. Optimize using primal simplex method. - PowerPoint PPT Presentation

TRANSCRIPT

Page 1: Gomory’s cutting plane algorithm for integer programming

Gomory’s cutting plane algorithm for integer

programming

Prepared by Shin-ichi Tanigawa

Page 2: Gomory’s cutting plane algorithm for integer programming

Rounding does not give any useful result

Page 3: Gomory’s cutting plane algorithm for integer programming

2

214

213

230236

xzxxxxxx

We first solve the LP-relaxation

Page 4: Gomory’s cutting plane algorithm for integer programming

2

214

213

230236

xzxxxxxx

Optimize using primal simplex method

Page 5: Gomory’s cutting plane algorithm for integer programming

2

214

213

230236

xzxxxxxx

41

412

413

21

23

21

230

66

xxz

xxx

xxx

Optimize using primal simplex method

Page 6: Gomory’s cutting plane algorithm for integer programming

2

214

213

230236

xzxxxxxx

41

412

413

21

23

21

230

66

xxz

xxx

xxx

43

432

431

41

41

23

41

41

23

61

611

xxz

xxx

xxx

Optimize using primal simplex method

Page 7: Gomory’s cutting plane algorithm for integer programming

43

432

431

41

41

23

41

41

23

61

611

xxz

xxx

xxx

The optimal solution is fractional

Page 8: Gomory’s cutting plane algorithm for integer programming

43

432

431

41

41

23

41

41

23

61

611

xxz

xxx

xxx

23

41

41 43 xxz (1)

Generating an objective row cut

Page 9: Gomory’s cutting plane algorithm for integer programming

43

432

431

41

41

23

41

41

23

61

611

xxz

xxx

xxx

23

41

41 43 xxz

23

41

41 43

xxz (weakening)

(1)

Generating an objective row cut

Page 10: Gomory’s cutting plane algorithm for integer programming

43

432

431

41

41

23

41

41

23

61

611

xxz

xxx

xxx

23

41

41 43 xxz

23

41

41 43 xxz

23

41

41 43

xxz (weakening)

(1)

(2)(for integers)

Generating an objective row cut

Page 11: Gomory’s cutting plane algorithm for integer programming

43

432

431

41

41

23

41

41

23

61

611

xxz

xxx

xxx

23

41

41 43 xxz

21

41

41

43 xx

23

41

41 43 xxz

23

41

41 43

xxz (weakening)

(1)

(2)(for integers)

(2) - (1)

Generating an objective row cut

Cutting plane is violated by current optimum solution

Page 12: Gomory’s cutting plane algorithm for integer programming

43

432

431

41

41

23

41

41

23

61

611

xxz

xxx

xxx

23

41

41 43 xxz

21

41

41

43 xx

12 x

23

41

41 43 xxz

23

41

41 43

xxz (weakening)

(1)

(2)(for integers)

(2) - (1)

(substitute for slacks)

Generating an objective row cut

214

213

230236xxxxxx

Page 13: Gomory’s cutting plane algorithm for integer programming

The first cutting plane: 12 x21

41

41

43 xx

Page 14: Gomory’s cutting plane algorithm for integer programming

435 41

41

21 xxx

A new slack variable is added:

21

41

41

43 xx

Page 15: Gomory’s cutting plane algorithm for integer programming

43

435

432

431

41

41

23

41

41

21

41

41

23

61

611

xxz

xxx

xxx

xxx

The new cut is added to the dictionary

21

41

41

43 xx

Page 16: Gomory’s cutting plane algorithm for integer programming

43

435

432

431

41

41

23

41

41

21

41

41

23

61

611

xxz

xxx

xxx

xxx

Re-optimize using dual simplex method

Page 17: Gomory’s cutting plane algorithm for integer programming

43

435

432

431

41

41

23

41

41

21

41

41

23

61

611

xxz

xxx

xxx

xxx

5

453

52

451

1 4 2

1 31

32

32

xzxxx

xx

xxx

Re-optimize using dual simplex method

Page 18: Gomory’s cutting plane algorithm for integer programming

5

453

52

451

1 4 2

1 31

32

32

xzxxx

xx

xxx

A new fractional solution has been found

Page 19: Gomory’s cutting plane algorithm for integer programming

5

453

52

451

1 4 2

1 31

32

32

xzxxx

xx

xxx

32

31

32

451 xxx (1)Generating a constraint row cut

Page 20: Gomory’s cutting plane algorithm for integer programming

5

453

52

451

1 4 2

1 31

32

32

xzxxx

xx

xxx

32

31

32

451

xxx

32

31

32

451 xxx (1)

(weaken)

Generating a constraint row cut

Page 21: Gomory’s cutting plane algorithm for integer programming

5

453

52

451

1 4 2

1 31

32

32

xzxxx

xx

xxx

32

31

32

451

xxx

32

31

32

451 xxx (1)

32

31

32

451 xxx (2)

Generating a constraint row cut

(valid for integers)

Page 22: Gomory’s cutting plane algorithm for integer programming

5

453

52

451

1 4 2

1 31

32

32

xzxxx

xx

xxx

32

31

32

451

xxx

32

31

32

451 xxx (1)

32

31

32

451 xxx (2)

(2) – (1)

Generating a constraint row cut

32

32

32

45 xx

Page 23: Gomory’s cutting plane algorithm for integer programming

5

453

52

451

1 4 2

1 31

32

32

xzxxx

xx

xxx

021 xx

32

31

32

451

xxx

32

31

32

451 xxx (1)

32

31

32

451 xxx (2)

(2) – (1)

Generating a constraint row cut

32

32

32

45 xx

214

213

230236xxxxxx

Page 24: Gomory’s cutting plane algorithm for integer programming

The second cutting plane

32

32

32

45 xx

021 xx

Page 25: Gomory’s cutting plane algorithm for integer programming

456 32

32

32 xxx

Add a new slack variable:32

32

32

45 xx

Page 26: Gomory’s cutting plane algorithm for integer programming

5

456

453

52

451

1 32

32

32

4 2 1

31

32

32

xz

xxx

xxxxx

xxx

The new cut is inserted into the optimum dictionary

32

32

32

45 xx

Page 27: Gomory’s cutting plane algorithm for integer programming

5

456

453

52

451

1 32

32

32

4 2 1

31

32

32

xz

xxx

xxxxx

xxx

5

654

653

52

651

1 32 1

235 1

1 211

xz

xxx

xxx

xx

xxx

Re-optimize using dual simplex method

Page 28: Gomory’s cutting plane algorithm for integer programming

5

654

653

52

651

1 32 1

235 1

1 211

xz

xxx

xxx

xx

xxx

The new optimum solution is integral