Cutting plane methods The Gomory fractional cut Further observations Cutting Planes Math 482, Lecture 34 Misha Lavrov April 29, 2020
Cutting plane methods The Gomory fractional cut Further observations Cutting planes Suppose we have an integer linear program, and a fractional solution x ∗ to its LP relaxation. Definition A cutting plane is an inequality α · x ≤ β that
Cutting plane methods The Gomory fractional cut Further observations Cutting planes Suppose we have an integer linear program, and a fractional solution x ∗ to its LP relaxation. Definition A cutting plane is an inequality α · x ≤ β that 1 Is true at every integer solution.
Cutting plane methods The Gomory fractional cut Further observations Cutting planes Suppose we have an integer linear program, and a fractional solution x ∗ to its LP relaxation. Definition A cutting plane is an inequality α · x ≤ β that 1 Is true at every integer solution. 2 Is false at x ∗ .
Cutting plane methods The Gomory fractional cut Further observations Cutting planes Suppose we have an integer linear program, and a fractional solution x ∗ to its LP relaxation. Definition A cutting plane is an inequality α · x ≤ β that 1 Is true at every integer solution. 2 Is false at x ∗ . Example: ∗ − x + 3 y ≤ 3 3 x − y ≤ 3 x , y ≥ 0
Cutting plane methods The Gomory fractional cut Further observations Cutting planes Suppose we have an integer linear program, and a fractional solution x ∗ to its LP relaxation. Definition A cutting plane is an inequality α · x ≤ β that 1 Is true at every integer solution. 2 Is false at x ∗ . Example: ∗ − x + 3 y ≤ 3 3 x − y ≤ 3 x , y ≥ 0 x + y ≤ 2
Cutting plane methods The Gomory fractional cut Further observations Cutting plane algorithms If we can generate cutting planes, we can solve integer linear programs.
Cutting plane methods The Gomory fractional cut Further observations Cutting plane algorithms If we can generate cutting planes, we can solve integer linear programs. 1 Solve the LP relaxation.
Cutting plane methods The Gomory fractional cut Further observations Cutting plane algorithms If we can generate cutting planes, we can solve integer linear programs. 1 Solve the LP relaxation. 2 If we get a fractional solution, add a cutting plane to our constraints.
Cutting plane methods The Gomory fractional cut Further observations Cutting plane algorithms If we can generate cutting planes, we can solve integer linear programs. 1 Solve the LP relaxation. 2 If we get a fractional solution, add a cutting plane to our constraints. 3 Solve the new LP relaxation.
Cutting plane methods The Gomory fractional cut Further observations Cutting plane algorithms If we can generate cutting planes, we can solve integer linear programs. 1 Solve the LP relaxation. 2 If we get a fractional solution, add a cutting plane to our constraints. 3 Solve the new LP relaxation. 4 Repeat steps 2–3 until we get an integer solution.
Cutting plane methods The Gomory fractional cut Further observations Cutting plane algorithms If we can generate cutting planes, we can solve integer linear programs. 1 Solve the LP relaxation. 2 If we get a fractional solution, add a cutting plane to our constraints. 3 Solve the new LP relaxation. 4 Repeat steps 2–3 until we get an integer solution. There are lots of methods to generate cutting planes. They vary in quality and in how long they take to find. We’ll just talk about one of them.
Cutting plane methods The Gomory fractional cut Further observations An example maximize 2 x + 3 y x , y ∈ Z subject to x + 2 y ≤ 3 4 x + 5 y ≤ 10 x , y ≥ 0
Cutting plane methods The Gomory fractional cut Further observations An example maximize 2 x + 3 y x , y ∈ Z subject to x + 2 y ≤ 3 4 x + 5 y ≤ 10 x , y ≥ 0 Properties of this example that we need to have: 1 All variables are integers, not just some.
Cutting plane methods The Gomory fractional cut Further observations An example maximize 2 x + 3 y x , y ∈ Z subject to x + 2 y ≤ 3 4 x + 5 y ≤ 10 x , y ≥ 0 Properties of this example that we need to have: 1 All variables are integers, not just some. 2 All coefficients in the constraints are integers.
Cutting plane methods The Gomory fractional cut Further observations An example maximize 2 x + 3 y x , y ∈ Z subject to x + 2 y ≤ 3 4 x + 5 y ≤ 10 x , y ≥ 0 Properties of this example that we need to have: 1 All variables are integers, not just some. 2 All coefficients in the constraints are integers. This means that the slacks s 1 = 3 − ( x + 2 y ) and s 2 = 10 − (4 x + 5 y ) are also integers.
Cutting plane methods The Gomory fractional cut Further observations Solving the LP relaxation x y s 1 s 2 1 2 1 0 3 s 1 Starting tableau: 4 5 0 1 10 s 2 − z 2 3 0 0 0
Cutting plane methods The Gomory fractional cut Further observations Solving the LP relaxation x y s 1 s 2 1 2 1 0 3 s 1 Starting tableau: 4 5 0 1 10 s 2 − z 2 3 0 0 0 x y s 1 s 2 1 / 1 1 / 0 3 / y 2 2 2 Pivot on y : 3 / 0 − 5 / 1 5 / s 2 2 2 2 − z 1 / 0 − 3 / 0 − 9 / 2 2 2
Cutting plane methods The Gomory fractional cut Further observations Solving the LP relaxation x y s 1 s 2 1 2 1 0 3 s 1 Starting tableau: 4 5 0 1 10 s 2 − z 2 3 0 0 0 x y s 1 s 2 1 / 1 1 / 0 3 / y 2 2 2 Pivot on y : 3 / 0 − 5 / 1 5 / s 2 2 2 2 − z 1 / 0 − 3 / 0 − 9 / 2 2 2 x y s 1 s 2 0 1 4 / − 1 / 2 / y 3 3 3 Pivot on x : x 1 0 − 5 / 2 / 5 / 3 3 3 − z 0 0 − 2 / − 1 / − 16 / 3 3 3
Cutting plane methods The Gomory fractional cut Further observations Generating the cut The first row of the optimal tableau says: y + 4 3 s 1 − 1 3 s 2 = 2 3 .
Cutting plane methods The Gomory fractional cut Further observations Generating the cut The first row of the optimal tableau says: y + 4 3 s 1 − 1 3 s 2 = 2 3 . We separate this into a integer part and a nonnegative part: + 1 3 s 1 + 2 = 2 y + s 1 − s 2 3 s 2 3 . � �� � � �� � integer nonnegative
Cutting plane methods The Gomory fractional cut Further observations Generating the cut The first row of the optimal tableau says: y + 4 3 s 1 − 1 3 s 2 = 2 3 . We separate this into a integer part and a nonnegative part: + 1 3 s 1 + 2 = 2 y + s 1 − s 2 3 s 2 3 . � �� � � �� � integer nonnegative Dropping the nonnegative part creates an inequality: y + s 1 − s 2 ≤ 2 3 .
Cutting plane methods The Gomory fractional cut Further observations Generating the cut The first row of the optimal tableau says: y + 4 3 s 1 − 1 3 s 2 = 2 3 . We separate this into a integer part and a nonnegative part: + 1 3 s 1 + 2 = 2 y + s 1 − s 2 3 s 2 3 . � �� � � �� � integer nonnegative Dropping the nonnegative part creates an inequality: y + s 1 − s 2 ≤ 2 3 . An integer that’s ≤ 2 3 is ≤ 0, so we can strengthen this: y + s 1 − s 2 ≤ 0 . This is the Gomory fractional cut.
Cutting plane methods The Gomory fractional cut Further observations Alternate form I: solving for x and y The inequality we get has several equivalent forms. For example, � � � � y + s 1 − s 2 ≤ 0 = ⇒ y + 3 − ( x + 2 y ) − 10 − (4 x + 5 y ) ≤ 0 or 3 x + 4 y ≤ 7.
Cutting plane methods The Gomory fractional cut Further observations Alternate form I: solving for x and y The inequality we get has several equivalent forms. For example, � � � � y + s 1 − s 2 ≤ 0 = ⇒ y + 3 − ( x + 2 y ) − 10 − (4 x + 5 y ) ≤ 0 or 3 x + 4 y ≤ 7. This is useful for adding the cutting plane to our constraints: maximize 2 x + 3 y x , y ∈ Z subject to x + 2 y ≤ 3 4 x + 5 y ≤ 10 x , y ≥ 0
Cutting plane methods The Gomory fractional cut Further observations Alternate form I: solving for x and y The inequality we get has several equivalent forms. For example, � � � � y + s 1 − s 2 ≤ 0 = ⇒ y + 3 − ( x + 2 y ) − 10 − (4 x + 5 y ) ≤ 0 or 3 x + 4 y ≤ 7. This is useful for adding the cutting plane to our constraints: maximize 2 x + 3 y x , y ∈ Z subject to x + 2 y ≤ 3 4 x + 5 y ≤ 10 3x + 4y ≤ 7 x , y ≥ 0
Cutting plane methods The Gomory fractional cut Further observations Alternate form II: tableau form The inequality we get has several equivalent forms. We can: 1 Add a slack variable, turning y − s 1 + s 2 ≤ 0 into y + s 1 − s 2 + s 3 = 0. (Note that s 3 is an integer!)
Cutting plane methods The Gomory fractional cut Further observations Alternate form II: tableau form The inequality we get has several equivalent forms. We can: 1 Add a slack variable, turning y − s 1 + s 2 ≤ 0 into y + s 1 − s 2 + s 3 = 0. (Note that s 3 is an integer!) 2 Subtract the equation y + 4 3 s 1 − 1 3 s 2 = 2 3 we started with, getting − 1 3 s 1 − 2 3 s 2 + s 3 = − 2 3 .
Recommend
More recommend