Branch and cut
Author: Lindsay Siegmundt, Peter Haddad, Chris Babbington, Jon Boisvert, Haris Shaikh (SysEn 6800 Fall 2020)
Steward: Wei-Han Chen, Fengqi You
Introduction
The Branch and Cut is a methodology that is used to optimize linear problems that are integer based. This concept is comprised of two known optimization methodologies - branch and bound and cutting planes. Utilizing these tools allows for the Branch and Cut to be successful by increasing the relaxation and decreasing the lower bound. The ultimate goal of this technique is to minimize the amount of nodes.
Methodology & Algorithm
Methodology - Haris
Algorithm - Peter
Branch and Cut for is a variation of the Branch and Bound algorithm. Branch and Cut incorporates Gomery cuts allowing the search space of the given problem. The standard Simplex Algorithm will be used to solve each Integer Linear Programming Problem (LP).
Below is an Algorithm to utilize the Branch and Cut algorithm with Gomery cuts and Partitioning:
Step 0:
Upper Bound = ∞ Lower Bound = -∞
Step 1. Initialize:
Set the first node as Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle LP_0} while setting the active nodes set as Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle L} . The set can be accessed via Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle LP_n }
Step 2. Terminate:
Step 3. Iterate through list L:
While Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle L} is not empty (i is the index of the list of L), then:
Step 3.1. Convert to a Relaxation:
Solve 3.2.
Solve for the Relaxed
Step 3.3.
If Z is infeasible: Return to step 3. else: Continue with solution Z.
Step 3.2. Cutting Planes:
If a cutting plane is found: then add to the linear Relaxation problem (as a constraint) and return to step 3.2 Else: Continue.
Step 4. Pruning and Fathoming:
If Z^l >= Z: return to step 3.
If Z^l <= Z AND X_i is an integral feasible: Z = Z^i Remove all Z^i from Set(L)
Step 5. Partition (reference EXTERNAL SOURCE)
Let Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D^{lj=k}_{j=1}} be a partition of the constraint set Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D} of problem Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle LP_l} . Add problems Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D^{lj=k}_{j=1}} to L, where Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle LP^l_j} is Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle LP_l} with feasible region restricted to Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle D^l_j} and Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle Z_{lj}} for j=1,...k is set to the value of Failed to parse (SVG (MathML can be enabled via browser plugin): Invalid response ("Math extension cannot connect to Restbase.") from server "https://wikimedia.org/api/rest_v1/":): {\displaystyle Z^l} for the parent problem l. Go to step 3.
Numerical Example - Chris
Application - Jon
Conclusion - Lindsay
References
https://optimization.mccormick.northwestern.edu/index.php/Branch_and_cut