Disjunctive inequalities: Difference between revisions
(163 intermediate revisions by 4 users not shown) | |||
Line 1: | Line 1: | ||
Authors: Derek Moore | Authors: Derek Moore, Grant Logan, Matthew Dinh, Daniel Ladron (SYSEN 5800/CHEME 6800 Fall 2021) | ||
==Introduction == | ==Introduction == | ||
Disjunctive inequalities are a form of disjunctive constraints that can be applied to linear programming. Disjunctive constraints are applied in all disjunctive programming, which just refers to the use of logical constraints, which include | Disjunctive inequalities are a form of disjunctive constraints that can be applied to linear programming. Disjunctive constraints are applied in all disjunctive programming, which just refers to the use of logical constraints in linear inequalities, which include “Or", ”And", or "Complement of" statements.<ref name=":0">E. Balas, “Disjunctive programming,” Annals of Discr. Math., vol. 5, pp. 6-11, 1979.</ref> In order to solve a disjunctive, the constraints have to be converted into mixed-integer programming (MIP) or mixed-inter linear programming (MILP) constraints, which is called disjunction. Disjunction involves the implementation of a binary variable to create a new set of constraints that can be solved easily. Two common methods for disjunction are the Big-M Reformulation and the Convex-Hull Reformulation.<ref name=":2">Pedro M. Castro and Ignacio E. Grossmann. 'Generalized Disjunctive Programming as a Systematic Modeling Framework to Derive Scheduling Formulations." 2012 ''51'' (16), 5781-5792 DOI: 10.1021/ie2030486</ref> | ||
== Method== | == Method== | ||
===General=== | ===General=== | ||
When given a set of inequalities, such as <math>f_1(x) | When given a set of inequalities, such as <math>f_1(x) \le 0\ \ \And \ \ f_2(x) \le 0 | ||
</math>, the disjunctive form is given by: <math>\begin{bmatrix} y \\ f_1(x) | </math>, the disjunctive form is given by: <math>\begin{bmatrix} y \\ f_1(x) \le 0 \end{bmatrix} \lor \begin{bmatrix} \neg y \\ f_2(x) \le 0 \end{bmatrix}. </math><ref name=":0" /> In order to turn the problem into a solvable MIP or MILP, logical constraints are created by using sufficiently large numbers, such as <math>M_1 | ||
</math> and <math>M_2 | |||
</math>, and a binary variable y for each inequality. This is shown below by <math>M | |||
</math>, <math>y_1 | |||
</math>, and <math>y_2 | |||
</math>: | |||
<math>f_1(x) | <math>f_1(x) \le M\ast(1-y_1)</math> | ||
<math>f_2(x) | <math>f_2(x) \le M\ast(1-y_2)</math> | ||
To set the binary variable to be mutually exclusive, the sum of the variables is set to 1 and the range is set to {0,1}. | To set the binary variable to be mutually exclusive, the sum of the variables is set to 1 and the range is set to {0,1}. | ||
<math> | <math>\sum_i y_i =1 | ||
</math> | </math> | ||
<math> | <math>y_i \ \epsilon\ \{ 0,1\}\ \ | ||
</math> | </math> | ||
===Big-M Reformulation=== | ===Big-M Reformulation<ref name=":0" /><ref name=":2" />=== | ||
[[File:Big-M-Convex-Hull Reformulation Example Solution Space.png|thumb|Figure 1: Disjunctive inequality solution space that can be solved via disjunction using the Big-M Reformulation or the Convex-Hull Reformulation ]] | [[File:Big-M-Convex-Hull Reformulation Example Solution Space.png|thumb|Figure 1: Disjunctive inequality solution space that can be solved via disjunction using the Big-M Reformulation or the Convex-Hull Reformulation ]] | ||
For the Big-M reformulation, a sufficiently large number, M, is used to nullify one set of constraints. This is accomplished by adding or subtracting the term | For the Big-M reformulation, a sufficiently large number, <math>M | ||
</math>, is used to nullify one set of constraints. This is accomplished by adding or subtracting the term “<math>M * (1 - y) | |||
</math>” to the upper bound and lower bound constraints, respectively, with its respective binary variable. While choosing a large M value allows for isolation, the large value also yields poor relaxation of the model space.<ref name=":1">You, Fengqi. (2021). "Mixed-Integer Linear Programming." </ref> | |||
For example, given a solution space <math>\begin{bmatrix} y \\ 2\le x_1 \le6 \\ 5\le x_2 \le9 \end{bmatrix} \lor \begin{bmatrix} \neg y \\ 8\le x_1 \le11 \\ 10\le x_2 \le15\ \end{bmatrix} | |||
</math>(shown graphically in Figure 1), to determine which of the solutions is optimal, the problem must be formulated such that one set of constraints is chosen. Using the Big-M Reformulation, the following MILP set would be obtained: | </math>(shown graphically in Figure 1), to determine which of the solutions is optimal, the problem must be formulated such that one set of constraints is chosen. Using the Big-M Reformulation, the following MILP set would be obtained: | ||
'''y Formulation''' | '''<math>y</math> Formulation''' | ||
<math>2 - M*(1-y_1) \leq x1 \leq 6 + M*(1-y_1)</math> | <math>2 - M*(1-y_1) \leq x1 \leq 6 + M*(1-y_1)</math> | ||
Line 35: | Line 45: | ||
</math> | </math> | ||
''' | '''<math>\neg y</math> Formulation''' | ||
<math>8 - M*(1-y_2) \leq x1 \leq 11 + M*(1-y_2)</math> | <math>8 - M*(1-y_2) \leq x1 \leq 11 + M*(1-y_2)</math> | ||
Line 41: | Line 51: | ||
<math>10 - M*(1-y_2) \leq x2 \leq 15 + M*(1-y_2)</math> | <math>10 - M*(1-y_2) \leq x2 \leq 15 + M*(1-y_2)</math> | ||
===Convex-Hull Reformulation === | ===Convex-Hull Reformulation<ref name=":0" /><ref name=":2" /> === | ||
Similar to the Big-M reformulation, the convex-hull reformulation uses a binary variable, y, to constrain the set of inequalities. The first step in converting the problem into a solvable MILP is breaking all variables into a set of variables, such as ( | Similar to the Big-M reformulation, the convex-hull reformulation uses a binary variable, y, to constrain the set of inequalities. The first step in converting the problem into a solvable MILP is breaking all variables into a set of variables, such as (<math>x_1</math> → <math>x_{11}</math> + <math>x_{12}</math>). By adding these addition variables, it is possible to isolate what set of parameters provide for the optimal solution of the problem. Then, similar to the Big-M reformulation, a sufficiently large variable, M, is used to nullify the non-optimal variable set, such as <math>x_{11}</math> and <math>x_{12}</math>. For the problem show in Figure 1, the following variable constraints would be formulated: | ||
'''y Formulation''' | '''<math>y</math> Formulation''' | ||
<math>0 \leq x_{11} \leq M*y_1 | <math>0 \leq x_{11} \leq M*y_1 | ||
Line 51: | Line 61: | ||
<math>0 \leq x_{21} \leq M*y_1</math> | <math>0 \leq x_{21} \leq M*y_1</math> | ||
''' | '''<math>\neg y</math> Formulation''' | ||
<math>0 \leq x_{12} \leq M*y_2</math> | <math>0 \leq x_{12} \leq M*y_2</math> | ||
Line 57: | Line 67: | ||
<math>0 \leq x_{22} \leq M*y_2</math> | <math>0 \leq x_{22} \leq M*y_2</math> | ||
Formulation of the numerical constraints would then be implemented: '''y Formulation''' | Formulation of the numerical constraints would then be implemented: | ||
'''<math>y</math> Formulation''' | |||
<math>2\ast y_1\le\ x_{11}\ \le6\ast y_1 </math> | <math>2\ast y_1\le\ x_{11}\ \le6\ast y_1 </math> | ||
<math>5\ast | <math>5\ast y_1\le\ x_{21}\ \le9\ast y_1</math> | ||
''' | '''<math>\neg y</math> Formulation''' | ||
<math>8\ast y_2\le\ x_{12}\ \le11\ast y_2</math> | <math>8\ast y_2\le\ x_{12}\ \le11\ast y_2</math> | ||
Line 69: | Line 81: | ||
<math>10\ast y_2\le\ x_{22}\ \le15\ast y_2</math> | <math>10\ast y_2\le\ x_{22}\ \le15\ast y_2</math> | ||
With the Convex-Hull transformation, the additional constraints confine the problem, such that a tighter (convex) solution space is examined compared to Big-M Formulation. | With the Convex-Hull transformation, the additional constraints confine the problem, such that a tighter (convex) solution space is examined compared to Big-M Formulation.<ref name=":1" /> | ||
==Numerical Example== | |||
Given the following Disjunctive Inequality form below, reformulate the following problem using Convex Hull method and Big-M: | |||
<math>\begin{bmatrix} y \\ 0\le x_1 \le13 \\ 0\le x_2 \le4 \\ 1\le x_2 + x_3 \le 7 \end{bmatrix} \lor | |||
\begin{bmatrix} \neg y \\ 2\le x_1 \le10 \\ 4\le x_2 \le6\ \\ 2\le x_2 + x_3 \le 8 \end{bmatrix} | |||
</math> | |||
===Convex Hull Method=== | |||
We begin by setting introducing a binary variable y as a summation to 1: | |||
<math>y_1 + y_2 = 1, y_1, y_2 \epsilon</math> {0,1} | |||
Next we begin by grouping our <math>x_{ij}</math> values. | |||
<math> x_1 = x_{11} + x_{12}</math> | |||
<math> x_2 = x_{21} + x_{22}</math> | |||
<math> x_3 = x_{31} + x_{32}</math> | |||
Next nullify the non-optimal variable sets with another binary variable large <math>M</math> variable to: | |||
<math> 0\leq x_{11}\leq y_{1}*M </math> | |||
<math> 0\leq x_{21}\leq y_{1}*M </math> | |||
<math> 0\leq x_{31}\leq y_{1}*M </math> | |||
<math> 0\leq x_{12}\leq y_{2}*M </math> | |||
<math> | <math> 0\leq x_{22}\leq y_{2}*M </math> | ||
<math> 0\leq x_{32}\leq y_{2}*M </math> | |||
Keep in mind the <math>M</math> must be sufficiently large, too large of a value can yield to poor relaxation of the LP. | |||
Finally the below constraints are reformulated from the original constraints, reformulated with <math>y</math> included to pin <math>x_{ij} =0</math> when <math>y_j=0</math>, subject to the original constraint when <math>y_j=1</math>. | |||
<math> 0\leq x_{11}\leq y_{1}*13 </math> | |||
<math> 0\leq x_{21}\leq y_{1}*4 </math> | |||
<math> 1*y_{1}\leq x_{21} + x_{31}\leq y_{1}*7 </math> | |||
<math> 2*y_{2}\leq x_{12}\leq y_{2}*10 </math> | |||
<math> 4*y_{2}\leq x_{22}\leq y_{2}*6 </math> | |||
<math> 2*y_{2}\leq x_{22} + x_{32}\leq y_{2}*8 </math> | |||
The reformulated constraint set is thus all of these constraints, making the problem a MIP. | |||
===Big-M Method=== | |||
We now present the same constraint set reformulated by the Big-M method. We can begin by setting 2 binary variables <math>y_1</math> and <math>y_2</math> summing to 1. | |||
<math>y_1 + y_2 = 1, y_1, y_2 \epsilon</math> {0,1} | |||
Next, we add the binary variable <math>M</math> as it is a arbitrarily large constant which is used to reformulate the inequality. Each inequality is formed in a single step by adding or subtracting <math> M*(1-y_i) </math> depending on if the inequality is greater than or equal to, or less than or equal to. | |||
<math>-M*(1-y_1)+0 \leq x_1 \leq 13+M(1-y_1)</math> | |||
<math>-M*(1-y_1)+0 \leq x_2 \leq 4+M(1-y_1)</math> | |||
<math>-M*(1-y_1)+1 \leq x_2+x_3 \leq 7+M(1-y_1)</math> | |||
<math>-M*(1-y_2)+2 \leq x_1 \leq 10+M(1-y_2)</math> | |||
<math>-M*(1-y_2)+4 \leq x_2 \leq 6+M(1-y_2)</math> | |||
<math>-M*(1-y_2)+2 \leq x_2+x_3 \leq 8+M(1-y_2)</math> | |||
In this way, if <math>y_1 = 1</math> and <math>y_2 = 0</math> the first set of inequalities is enforced and the second set of inequalities are dramatically expanded, effectively keeping them from constraining the problem, given that <math>M</math> is large enough. | |||
==Applications== | ==Applications== | ||
[[File:Water.PNG|thumb|Figure 2: Wastewater system ]] | |||
Disjunctive inequality programming can be used to solve real world problems in various sectors. Integer programming formulations utilizing a binary decision variable on which multiple constraints depend can be reformulated into disjunctive inequality formulations. | |||
===Strip Packing Problem=== | |||
The Strip Packing Problem is a well-known problem in which two dimensional rectangles, or strips, are aligned in a two dimensional grid, subject to the constraints that the strips do not overlap. One method of formulating this problem is to describe the non-overlapping constraints as a set of four statements: for an existing rectangle <math>A</math>, a new rectangle <math>B</math> must be above, below, to the left, or to the right of rectangle <math>A</math>. Each situation represents a unique inequality constraint; for example, if <math>B</math> is above <math>A</math>, then it must hold that the lower border of <math>B</math> is at a greater value than the lower border of <math>A</math> plus the height of <math>A</math>. This can be extended to remove symmetries and improve efficiency of the solutions as well<ref name=":7">Trespalacios, Francisco, and Ignacio E. Grossmann. "Symmetry breaking for generalized disjunctive programming formulation of the strip packing problem." Annals of Operations Research 258, no. 2 (2017): 747-759.</ref>. This can also be extended into three dimensions, for applications such as loading a cargo ship. | |||
===Process Scheduling=== | |||
Disjunctive inequalities are invaluable for decisions within process engineering when multiple setups, reactors, or processes are possible. In process scheduling, machine and shop floor operations are scheduled in such a way to maximize production of a final product, minimize downtime, or maximize profit. Many of the decisions underlying these operations are binary: whether or not to run a machine/operation at a given time. If a machine/operation is run, constraints are required to define costs (CAPEX and OPEX), profits, thermodynamic constraints, and resources (including mass and energy balances) associated with the running machine/operation. If a machine/operation is not run, a different set of constraints is required to define idle costs and resources. This can be formulated into a disjunctive inequality formulation and solved using the described methods. The disjunctive inequality takes the form: | |||
<math>Min Z = f(x) + \textstyle \sum_{k\epsilon K} c_k\displaystyle</math> | |||
<math>s.t. g(x) \leq 0</math> | |||
<math>\underset{i\epsilon D_i}{\lor} \begin{bmatrix} Y_{ki} \\ r_{ki} (x) \leq 0 \\ c_k = l_{ki} \end{bmatrix} k \epsilon K | |||
</math> | |||
<math> \veebar_{i\epsilon D_i} Y_{ki} </math> | |||
In this general formulation, <math>c_k</math> represents the cost of enforcing a term, continuous variables represent system parameters, and constraints represent thermodynamic and resource constraints as described above <ref name=":8">Grossmann, Ignacio E., and Francisco Trespalacios. "Systematic modeling of discrete‐continuous optimization models through generalized disjunctive programming." AIChE Journal 59, no. 9 (2013): 3276-3295.</ref>. Some specific applications include distillation columns, pharmaceutical purification plants, and wastewater treatment plants. | |||
Figure 2 shows a special case of process scheduling, a wastewater network that removes pollutants from its mixture. The task is to figure out the total cost to discharge the pollution.<ref name=":6">Grossmann, Ignacio E., and Juan P. Ruiz. Generalized Disjunctive Programming: A framework for formulation and alternative algorithms for MINLP optimization, Mixed Integer Nonlinear Programming, Springer New York, 2012. </ref> This wastewater system can be reformulated into a non-convex General Disjunction Programming problem shown below:<ref name=":6">Grossmann, Ignacio E., and Juan P. Ruiz. Generalized Disjunctive Programming: A framework for formulation and alternative algorithms for MINLP optimization, Mixed Integer Nonlinear Programming, Springer New York, 2012. </ref> | |||
<math>MinZ = \textstyle \sum_{k\epsilon P U} C P_k\displaystyle</math> | |||
<math>f_k^j = \textstyle \sum_{i\epsilon M_k} f_i^j\displaystyle </math> <math>\forall jk \in MU</math> | |||
<math>\textstyle \sum_{i\epsilon S_k} f_i^j\displaystyle = f_k^j</math> <math>\forall jk \in SU</math> | |||
<math>\textstyle \sum_{i\epsilon S_k} \zeta_i^j\displaystyle = 1</math> <math>k \in SU</math> | |||
<math>f_k^j = \textstyle \zeta_i^k f_k^j \forall_j\displaystyle </math> <math>i \in S_k</math> <math>k \in SU</math> | |||
<math>\underset{h\epsilon D_k}{\lor} \begin{bmatrix} y \\ f_i^j = \Beta_i^{jh}, i \epsilon OPU_k,i^i \epsilon IPU_k, \forall_j \\ F_k = \sum_j f_i^j, i \epsilon OPU_k \\ CP_k = \partial_{ik} F_k \end{bmatrix} k \epsilon PU | |||
</math> | |||
<math>0 \leq \zeta_i^k \leq 1</math> <math>\forall j, k</math> | |||
<math>0 \leq f_i^j, f_k^j</math> <math>\forall i, j, k</math> | |||
<math>0 \leq CP_k</math> <math>\forall k</math> | |||
<math>YP_k^h \in </math> {True, False} <math>\forall h \in D_k \forall k \in PU | |||
</math> | |||
==Conclusion== | ==Conclusion== | ||
As shown, disjunctive inequalities can be used to formulate various different types of mixed-integer program linear and nonlinear programs where binary decisions determine constraint sets. Two methods that are used to reformulate the problem are Convex Hull and Big-M reformulations. It could be shown that to obtain the convex hull of a 0 or 1 mixed-integer program, it suffices to take the convex hull of each 0 or 1 variable at a time <ref name=":1">You, Fengqi. (2021). "Mixed-Integer Linear Programming." </ref>. Implementing the Big-M method generates a much smaller MILP/MINLP with a tighter relaxation than the convex-hull method, providing more efficient computational solutions. Disjunctive inequalities can also be used to improve the performance of any general purpose Branch-and-Cut algorithm as shown on the research from Balas and Bonami <ref name=":5">E. Balas, P. Bonami. "Generating lift-and-project cuts from the LP simplex tableau: open source implementation and testing of new variants. Math. Prog. Comp. 1", 165–199 (2009) </ref>. Many of the real world problems that can be solved through disjunctive inequalities involve process optimization where various binary decisions have to be made to optimize the solution. Examples of real world problems illustrated here include cargo packing and processing plants such as wastewater treatment plants. In conclusion, formulating these types of problems with disjunctive inequalities allows for a simple representation and conversion to MILP/MILP, solvable with standard MILP/MINLP solution algorithms. | |||
==References== | ==References== | ||
< | |||
<references /> |
Latest revision as of 22:06, 15 December 2021
Authors: Derek Moore, Grant Logan, Matthew Dinh, Daniel Ladron (SYSEN 5800/CHEME 6800 Fall 2021)
Introduction
Disjunctive inequalities are a form of disjunctive constraints that can be applied to linear programming. Disjunctive constraints are applied in all disjunctive programming, which just refers to the use of logical constraints in linear inequalities, which include “Or", ”And", or "Complement of" statements.[1] In order to solve a disjunctive, the constraints have to be converted into mixed-integer programming (MIP) or mixed-inter linear programming (MILP) constraints, which is called disjunction. Disjunction involves the implementation of a binary variable to create a new set of constraints that can be solved easily. Two common methods for disjunction are the Big-M Reformulation and the Convex-Hull Reformulation.[2]
Method
General
When given a set of inequalities, such as , the disjunctive form is given by: [1] In order to turn the problem into a solvable MIP or MILP, logical constraints are created by using sufficiently large numbers, such as and , and a binary variable y for each inequality. This is shown below by , , and :
To set the binary variable to be mutually exclusive, the sum of the variables is set to 1 and the range is set to {0,1}.
Big-M Reformulation[1][2]
For the Big-M reformulation, a sufficiently large number, , is used to nullify one set of constraints. This is accomplished by adding or subtracting the term “” to the upper bound and lower bound constraints, respectively, with its respective binary variable. While choosing a large M value allows for isolation, the large value also yields poor relaxation of the model space.[3]
For example, given a solution space (shown graphically in Figure 1), to determine which of the solutions is optimal, the problem must be formulated such that one set of constraints is chosen. Using the Big-M Reformulation, the following MILP set would be obtained:
Formulation
Formulation
Convex-Hull Reformulation[1][2]
Similar to the Big-M reformulation, the convex-hull reformulation uses a binary variable, y, to constrain the set of inequalities. The first step in converting the problem into a solvable MILP is breaking all variables into a set of variables, such as ( → + ). By adding these addition variables, it is possible to isolate what set of parameters provide for the optimal solution of the problem. Then, similar to the Big-M reformulation, a sufficiently large variable, M, is used to nullify the non-optimal variable set, such as and . For the problem show in Figure 1, the following variable constraints would be formulated:
Formulation
Formulation
Formulation of the numerical constraints would then be implemented:
Formulation
Formulation
With the Convex-Hull transformation, the additional constraints confine the problem, such that a tighter (convex) solution space is examined compared to Big-M Formulation.[3]
Numerical Example
Given the following Disjunctive Inequality form below, reformulate the following problem using Convex Hull method and Big-M:
Convex Hull Method
We begin by setting introducing a binary variable y as a summation to 1:
{0,1}
Next we begin by grouping our values.
Next nullify the non-optimal variable sets with another binary variable large variable to:
Keep in mind the must be sufficiently large, too large of a value can yield to poor relaxation of the LP.
Finally the below constraints are reformulated from the original constraints, reformulated with included to pin when , subject to the original constraint when .
The reformulated constraint set is thus all of these constraints, making the problem a MIP.
Big-M Method
We now present the same constraint set reformulated by the Big-M method. We can begin by setting 2 binary variables and summing to 1.
{0,1}
Next, we add the binary variable as it is a arbitrarily large constant which is used to reformulate the inequality. Each inequality is formed in a single step by adding or subtracting depending on if the inequality is greater than or equal to, or less than or equal to.
In this way, if and the first set of inequalities is enforced and the second set of inequalities are dramatically expanded, effectively keeping them from constraining the problem, given that is large enough.
Applications
Disjunctive inequality programming can be used to solve real world problems in various sectors. Integer programming formulations utilizing a binary decision variable on which multiple constraints depend can be reformulated into disjunctive inequality formulations.
Strip Packing Problem
The Strip Packing Problem is a well-known problem in which two dimensional rectangles, or strips, are aligned in a two dimensional grid, subject to the constraints that the strips do not overlap. One method of formulating this problem is to describe the non-overlapping constraints as a set of four statements: for an existing rectangle , a new rectangle must be above, below, to the left, or to the right of rectangle . Each situation represents a unique inequality constraint; for example, if is above , then it must hold that the lower border of is at a greater value than the lower border of plus the height of . This can be extended to remove symmetries and improve efficiency of the solutions as well[4]. This can also be extended into three dimensions, for applications such as loading a cargo ship.
Process Scheduling
Disjunctive inequalities are invaluable for decisions within process engineering when multiple setups, reactors, or processes are possible. In process scheduling, machine and shop floor operations are scheduled in such a way to maximize production of a final product, minimize downtime, or maximize profit. Many of the decisions underlying these operations are binary: whether or not to run a machine/operation at a given time. If a machine/operation is run, constraints are required to define costs (CAPEX and OPEX), profits, thermodynamic constraints, and resources (including mass and energy balances) associated with the running machine/operation. If a machine/operation is not run, a different set of constraints is required to define idle costs and resources. This can be formulated into a disjunctive inequality formulation and solved using the described methods. The disjunctive inequality takes the form:
In this general formulation, represents the cost of enforcing a term, continuous variables represent system parameters, and constraints represent thermodynamic and resource constraints as described above [5]. Some specific applications include distillation columns, pharmaceutical purification plants, and wastewater treatment plants.
Figure 2 shows a special case of process scheduling, a wastewater network that removes pollutants from its mixture. The task is to figure out the total cost to discharge the pollution.[6] This wastewater system can be reformulated into a non-convex General Disjunction Programming problem shown below:[6]
{True, False}
Conclusion
As shown, disjunctive inequalities can be used to formulate various different types of mixed-integer program linear and nonlinear programs where binary decisions determine constraint sets. Two methods that are used to reformulate the problem are Convex Hull and Big-M reformulations. It could be shown that to obtain the convex hull of a 0 or 1 mixed-integer program, it suffices to take the convex hull of each 0 or 1 variable at a time [3]. Implementing the Big-M method generates a much smaller MILP/MINLP with a tighter relaxation than the convex-hull method, providing more efficient computational solutions. Disjunctive inequalities can also be used to improve the performance of any general purpose Branch-and-Cut algorithm as shown on the research from Balas and Bonami [7]. Many of the real world problems that can be solved through disjunctive inequalities involve process optimization where various binary decisions have to be made to optimize the solution. Examples of real world problems illustrated here include cargo packing and processing plants such as wastewater treatment plants. In conclusion, formulating these types of problems with disjunctive inequalities allows for a simple representation and conversion to MILP/MILP, solvable with standard MILP/MINLP solution algorithms.
References
- ↑ 1.0 1.1 1.2 1.3 E. Balas, “Disjunctive programming,” Annals of Discr. Math., vol. 5, pp. 6-11, 1979.
- ↑ 2.0 2.1 2.2 Pedro M. Castro and Ignacio E. Grossmann. 'Generalized Disjunctive Programming as a Systematic Modeling Framework to Derive Scheduling Formulations." 2012 51 (16), 5781-5792 DOI: 10.1021/ie2030486
- ↑ 3.0 3.1 3.2 You, Fengqi. (2021). "Mixed-Integer Linear Programming."
- ↑ Trespalacios, Francisco, and Ignacio E. Grossmann. "Symmetry breaking for generalized disjunctive programming formulation of the strip packing problem." Annals of Operations Research 258, no. 2 (2017): 747-759.
- ↑ Grossmann, Ignacio E., and Francisco Trespalacios. "Systematic modeling of discrete‐continuous optimization models through generalized disjunctive programming." AIChE Journal 59, no. 9 (2013): 3276-3295.
- ↑ 6.0 6.1 Grossmann, Ignacio E., and Juan P. Ruiz. Generalized Disjunctive Programming: A framework for formulation and alternative algorithms for MINLP optimization, Mixed Integer Nonlinear Programming, Springer New York, 2012.
- ↑ E. Balas, P. Bonami. "Generating lift-and-project cuts from the LP simplex tableau: open source implementation and testing of new variants. Math. Prog. Comp. 1", 165–199 (2009)