<?xml version="1.0"?>
<feed xmlns="http://www.w3.org/2005/Atom" xml:lang="en">
	<id>https://optimization.cbe.cornell.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NRB</id>
	<title>Cornell University Computational Optimization Open Textbook - Optimization Wiki - User contributions [en]</title>
	<link rel="self" type="application/atom+xml" href="https://optimization.cbe.cornell.edu/api.php?action=feedcontributions&amp;feedformat=atom&amp;user=NRB"/>
	<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Special:Contributions/NRB"/>
	<updated>2026-04-27T08:40:03Z</updated>
	<subtitle>User contributions</subtitle>
	<generator>MediaWiki 1.43.0</generator>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2687</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2687"/>
		<updated>2020-12-16T02:21:17Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). GDP is an extension of linear disjunctive programming&amp;lt;ref&amp;gt;Balas, Egon. &amp;quot;Disjunctive Programming.&amp;quot; Annals of Discrete Mathematics, 1979.&amp;lt;/ref&amp;gt; that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP&amp;lt;ref&amp;gt;Raman and Grossman. &amp;quot;Modelling and Computational Techniques for Logic Based Integer Programming.&amp;quot; Computers &amp;amp; Chemical Engineering, 1994.&amp;lt;/ref&amp;gt;, is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Couenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
Y_p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; &lt;br /&gt;
and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; ====&lt;br /&gt;
The subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with that being said you can fix a integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
GDP provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the disjunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. These methodologies that can not only solve both the Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the BM method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the HR method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the BM and the HR methods. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2686</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2686"/>
		<updated>2020-12-16T02:18:48Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). GDP is an extension of linear disjunctive programming&amp;lt;ref&amp;gt;Balas, Egon. &amp;quot;Disjunctive Programming.&amp;quot; Annals of Discrete Mathematics, 1979.&amp;lt;/ref&amp;gt; that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP&amp;lt;ref&amp;gt;Raman and Grossman. &amp;quot;Modelling and Computational Techniques for Logic Based Integer Programming.&amp;quot; Computers &amp;amp; Chemical Engineering, 1994.&amp;lt;/ref&amp;gt;, is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Couenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
Y_p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; &lt;br /&gt;
and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; ====&lt;br /&gt;
The subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with that being said you can fix a integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
GDP provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the disjunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. These methodologies that can not only solve both the Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2685</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2685"/>
		<updated>2020-12-16T02:17:39Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). GDP is an extension of linear disjunctive programming&amp;lt;ref&amp;gt;Balas, Egon. &amp;quot;Disjunctive Programming.&amp;quot; Annals of Discrete Mathematics, 1979.&amp;lt;/ref&amp;gt; that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP&amp;lt;ref&amp;gt;Raman and Grossman. &amp;quot;Modelling and Computational Techniques for Logic Based Integer Programming.&amp;quot; Computers &amp;amp; Chemical Engineering, 1994.&amp;lt;/ref&amp;gt;, is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Coenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Coenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
Y_p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; &lt;br /&gt;
and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; ====&lt;br /&gt;
The subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with that being said you can fix a integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
GDP provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the disjunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. These methodologies that can not only solve both the Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2682</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2682"/>
		<updated>2020-12-16T00:12:50Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). GDP is an extension of linear disjunctive programming&amp;lt;ref&amp;gt;Balas, Egon. &amp;quot;Disjunctive Programming.&amp;quot; Annals of Discrete Mathematics, 1979.&amp;lt;/ref&amp;gt; that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP&amp;lt;ref&amp;gt;Raman and Grossman. &amp;quot;Modelling and Computational Techniques for Logic Based Integer Programming.&amp;quot; Computers &amp;amp; Chemical Engineering, 1994.&amp;lt;/ref&amp;gt;, is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Coenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Coenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
Y_p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; &lt;br /&gt;
and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; ====&lt;br /&gt;
The subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with that being said you can fix a integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
GDP provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the disjunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. These methodologies that can not only solve both the Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2513</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2513"/>
		<updated>2020-12-13T19:29:34Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming&amp;lt;ref&amp;gt;Balas, Egon. &amp;quot;Disjunctive Programming.&amp;quot; Annals of Discrete Mathematics, 1979.&amp;lt;/ref&amp;gt; that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP&amp;lt;ref&amp;gt;Raman and Grossman. &amp;quot;Modelling and Computational Techniques for Logic Based Integer Programming.&amp;quot; Computers &amp;amp; Chemical Engineering, 1994.&amp;lt;/ref&amp;gt;, is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Coenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Coenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
Y_p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; &lt;br /&gt;
and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; ====&lt;br /&gt;
The subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with that being said you can fix a integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the disjunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. These methodologies that can not only solve both the Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2510</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2510"/>
		<updated>2020-12-13T19:27:06Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming&amp;lt;ref&amp;gt;Balas, Egon. &amp;quot;Disjunctive Programming.&amp;quot; Annals of Discrete Mathematics, 1979.&amp;lt;/ref&amp;gt; that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP&amp;lt;ref&amp;gt;Raman and Grossman. &amp;quot;Modelling and Computational Techniques for Logic Based Integer Programming.&amp;quot; Computers &amp;amp; Chemical Engineering, 1994.&amp;lt;/ref&amp;gt;, is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Coenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Coenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
Y_p&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; &lt;br /&gt;
and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed &amp;lt;math&amp;gt;Y_p&amp;lt;/math&amp;gt; ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with that being said you can fix a integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the disjunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. These methodologies that can not only solve both the Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2375</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2375"/>
		<updated>2020-12-12T21:44:56Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming&amp;lt;ref&amp;gt;Balas, Egon. &amp;quot;Disjunctive Programming.&amp;quot; Annals of Discrete Mathematics, 1979.&amp;lt;/ref&amp;gt; that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP&amp;lt;ref&amp;gt;Raman and Grossman. &amp;quot;Modelling and Computational Techniques for Logic Based Integer Programming.&amp;quot; Computers &amp;amp; Chemical Engineering, 1994.&amp;lt;/ref&amp;gt;, is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Coenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Coenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2371</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2371"/>
		<updated>2020-12-12T21:36:56Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming (Balas, 1979) that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP (Raman and Grossmann, 1994), is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot;&amp;gt;GAMS. DICOPT, https://www.gams.com/latest/docs/S_DICOPT.html&amp;lt;/ref&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot;&amp;gt;GAMS. AlphaECP, 1995, https://www.gams.com/latest/docs/S_ALPHAECP.html&amp;lt;/ref&amp;gt;, BARON&amp;lt;ref name=&amp;quot;:6&amp;quot;&amp;gt;BARON, 1996, https://minlp.com/baron&amp;lt;/ref&amp;gt;, Coenne&amp;lt;ref name=&amp;quot;:7&amp;quot;&amp;gt;Coenne, 2006, https://projects.coin-or.org/Couenne&amp;lt;/ref&amp;gt; etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;&lt;br /&gt;
* SBB&amp;lt;ref name=&amp;quot;:4&amp;quot;&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;&lt;br /&gt;
* Couenne&amp;lt;ref name=&amp;quot;:7&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT&amp;lt;ref name=&amp;quot;:3&amp;quot; /&amp;gt;, SBB&amp;lt;ref name=&amp;quot;:4&amp;quot; /&amp;gt;, α-ECP&amp;lt;ref name=&amp;quot;:5&amp;quot; /&amp;gt; and BARON&amp;lt;ref name=&amp;quot;:6&amp;quot; /&amp;gt;, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2286</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2286"/>
		<updated>2020-12-11T02:33:16Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Conclusion */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming (Balas, 1979) that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP (Raman and Grossmann, 1994), is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&amp;lt;ref&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2285</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2285"/>
		<updated>2020-12-11T02:32:17Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming (Balas, 1979) that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP (Raman and Grossmann, 1994), is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&amp;lt;ref&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2282</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2282"/>
		<updated>2020-12-11T02:01:09Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&amp;lt;ref&amp;gt;GAMS. &#039;&#039;SBB&#039;&#039;, 2020, www.gams.com/latest/docs/S_SBB.html.&amp;lt;/ref&amp;gt;&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2281</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2281"/>
		<updated>2020-12-11T01:58:55Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2015): Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466700.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2280</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2280"/>
		<updated>2020-12-11T01:56:46Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM.&amp;lt;ref&amp;gt;Trespalacios, Francisco, and Ignacio E Grossmann. &#039;&#039;Algorithmic Approach for Improved Mixed-Integer Reformulations of Convex Generalized Disjunctive Programs&#039;&#039;, 2013, doi:&amp;lt;nowiki&amp;gt;http://dx.doi.org/10.1287/ijoc.2014.0610&amp;lt;/nowiki&amp;gt;.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2279</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2279"/>
		<updated>2020-12-11T01:48:12Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the the GDP problem from above reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM. &amp;lt;CITE SOURCE&amp;gt; http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2273</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2273"/>
		<updated>2020-12-10T04:56:50Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Theory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix &amp;lt;math&amp;gt;\begin{align}&lt;br /&gt;
\Y_p\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt; and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM. &amp;lt;CITE SOURCE&amp;gt; http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2255</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2255"/>
		<updated>2020-12-10T01:38:41Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM. &amp;lt;CITE SOURCE&amp;gt; http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2254</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2254"/>
		<updated>2020-12-10T01:37:05Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Methodology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes in this section. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM. &amp;lt;CITE SOURCE&amp;gt; http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2252</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2252"/>
		<updated>2020-12-10T01:33:01Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&lt;br /&gt;
Below is a GDP problem that will be used for demonstration purposes for both Big-M and Hull Reformulation. &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {True,False}&lt;br /&gt;
\quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
The same GDP form will now be reformulated into an MINLP by using the Hull Reformulation method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;TODO Talk about the HR technique and site this source http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
HR significantly increases the number of variables that are required in the same BM variant. The decrease in time needed to solve computations could very well be argued to be worth the reduced simplicity that one can get from BM. &amp;lt;CITE SOURCE&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* SBB&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2244</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2244"/>
		<updated>2020-12-10T01:16:19Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
&amp;lt;math&amp;gt;\min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
\bigvee_ {i \in D_k}  \begin{bmatrix} Y_{ki} \\&lt;br /&gt;
r_{ki}(x) \leq 0 &lt;br /&gt;
\end{bmatrix} \quad k \in K \\&lt;br /&gt;
\underline{\bigvee}_ {i \in D_k} Y_{ki} \quad k \in K\\&lt;br /&gt;
 \Omega(Y)=True\\&lt;br /&gt;
x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in True,False \quad k \in K, i \in D_k\\&lt;br /&gt;
&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;TODO Talk about the HR technique and site this source http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2243</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2243"/>
		<updated>2020-12-10T01:07:03Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Introduction */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR operator ( II ). Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming (Balas, 1979) that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP (Raman and Grossmann, 1994), is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;TODO Talk about the HR technique and site this source http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2238</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2238"/>
		<updated>2020-12-09T03:30:11Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Methodology */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;TODO Talk about the HR technique and site this source http://egon.cheme.cmu.edu/Papers/Trespalacios_Grossmann_improving_GDP.pdf&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
s.t. g(x) \leq 0\\&lt;br /&gt;
x = \sum_{i \in D_k} v^{ki}\quad k \in K\\&lt;br /&gt;
y_{ki}r_{ki}(v^{ki}/y_{ki}) \leq 0\quad k \in K, i \in D_k\\&lt;br /&gt;
\sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
Hy  \geq h\\&lt;br /&gt;
x^{lo}y_{ki} \leq v^{ki} \leq x^{up}y_{ki}\quad k \in K, i \in D_k\\&lt;br /&gt;
x \in  \Re^n\\&lt;br /&gt;
y_{ki} \in {0,1} \quad k \in K, i \in D_k\\&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2215</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2215"/>
		<updated>2020-12-08T02:46:22Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from the paper titled &#039;&#039;Generalized Disjunctive Programming: A Framework For Formulation and Alternative Algorithms For MINLP Optimization&#039;&#039;.&#039;&#039;&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2214</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2214"/>
		<updated>2020-12-08T02:36:41Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the Figure 2 depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 3: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 3 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2213</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2213"/>
		<updated>2020-12-08T02:35:36Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|none|thumb|600x600px|Figure 2: Process Network Example. Each decision point represents another disjunctive set. &amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt;]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2212</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=2212"/>
		<updated>2020-12-08T02:31:56Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* References */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|Figure 1: Generalized Disjunctive Programming Methods&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: Generalized Disjunctive Programming: A Framework For Formulation And Alternative Algorithms For MINLP Optimization. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1724</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1724"/>
		<updated>2020-11-24T03:45:28Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&amp;lt;ref name=&amp;quot;:2&amp;quot;&amp;gt;Grossmann, Ignacio. &#039;&#039;Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering&#039;&#039;.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&amp;lt;ref name=&amp;quot;:2&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&amp;lt;ref&amp;gt;Grossmann, Ignacio. &#039;&#039;Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering&#039;&#039;.&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: GENERALIZED DISJUNCTIVE PROGRAMMING: A FRAMEWORK FOR FORMULATION AND ALTERNATIVE ALGORITHMS FOR MINLP OPTIMIZATION. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1723</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1723"/>
		<updated>2020-11-24T03:40:32Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
Grossmann, Ignacio. &#039;&#039;Review of Mixed-Integer Nonlinear and Generalized Disjunctive Programming Applications in Process Systems Engineering&#039;&#039;. &lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: GENERALIZED DISJUNCTIVE PROGRAMMING: A FRAMEWORK FOR FORMULATION AND ALTERNATIVE ALGORITHMS FOR MINLP OPTIMIZATION. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1721</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1721"/>
		<updated>2020-11-24T03:12:57Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;Grossman, Ignacio E: Overview of Generalized Disjunctive Programming. Carnegie Mellon University.https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
(Review of mixed-integer nonlinear and generalizied disjunctiv eprogramming methods in process systems engineering, ingacio E grossmann and francisco tresplacios)&lt;br /&gt;
&lt;br /&gt;
==== file:///Users/blerand/Documents/Cornell/SYSEN%205800%20-%20Computational%20Optimization/Assignments/Project/file.pdf ====&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: GENERALIZED DISJUNCTIVE PROGRAMMING: A FRAMEWORK FOR FORMULATION AND ALTERNATIVE ALGORITHMS FOR MINLP OPTIMIZATION. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1720</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1720"/>
		<updated>2020-11-24T03:10:51Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
(Review of mixed-integer nonlinear and generalizied disjunctiv eprogramming methods in process systems engineering, ingacio E grossmann and francisco tresplacios)&lt;br /&gt;
&lt;br /&gt;
==== file:///Users/blerand/Documents/Cornell/SYSEN%205800%20-%20Computational%20Optimization/Assignments/Project/file.pdf ====&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;P. Ruize, Juan; Grossmann, Ignacio E.: GENERALIZED DISJUNCTIVE PROGRAMMING: A FRAMEWORK FOR FORMULATION AND ALTERNATIVE ALGORITHMS FOR MINLP OPTIMIZATION. Carnegie Mellon University. http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1718</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1718"/>
		<updated>2020-11-24T03:06:26Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
(Review of mixed-integer nonlinear and generalizied disjunctiv eprogramming methods in process systems engineering, ingacio E grossmann and francisco tresplacios)&lt;br /&gt;
&lt;br /&gt;
==== file:///Users/blerand/Documents/Cornell/SYSEN%205800%20-%20Computational%20Optimization/Assignments/Project/file.pdf ====&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1717</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1717"/>
		<updated>2020-11-24T03:04:48Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref&amp;gt;P. Ruiz, Juan; Grossmann, Ignacio E. (2012): A hierarchy of relaxations for nonlinear convex generalized disjunctive programming. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6466535.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
(Review of mixed-integer nonlinear and generalizied disjunctiv eprogramming methods in process systems engineering, ingacio E grossmann and francisco tresplacios)&lt;br /&gt;
&lt;br /&gt;
==== file:///Users/blerand/Documents/Cornell/SYSEN%205800%20-%20Computational%20Optimization/Assignments/Project/file.pdf ====&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref&amp;gt;Trespalacios, Francisco; Grossmann, Ignacio E. (2018): Improved Big-M Reformulation for Generalized Disjunctive Programs. Carnegie Mellon University. Journal contribution. &amp;lt;nowiki&amp;gt;https://doi.org/10.1184/R1/6467063.v1&amp;lt;/nowiki&amp;gt; &amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;br /&gt;
&amp;lt;references /&amp;gt;&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1715</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1715"/>
		<updated>2020-11-24T02:56:50Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) involves logic propositions (Boolean variables) and sets of constraints that are chained together using the logical OR. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&amp;lt;ref name=&amp;quot;:0&amp;quot;&amp;gt;https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535&amp;lt;/ref&amp;gt;&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
(Review of mixed-integer nonlinear and generalizied disjunctiv eprogramming methods in process systems engineering, ingacio E grossmann and francisco tresplacios)&lt;br /&gt;
&lt;br /&gt;
==== file:///Users/blerand/Documents/Cornell/SYSEN%205800%20-%20Computational%20Optimization/Assignments/Project/file.pdf ====&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times.&amp;lt;ref name=&amp;quot;:0&amp;quot; /&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy)&amp;lt;ref&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/ref&amp;gt;.&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot;&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/ref&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;ref name=&amp;quot;:1&amp;quot; /&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1709</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1709"/>
		<updated>2020-11-24T01:09:27Z</updated>

		<summary type="html">&lt;p&gt;NRB: Intro and Conclusion&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
Generalized disjunctive programming (GDP) is an extension of linear disjunctive programming (Balas, 1979) that can be applied to Mixed Integer Non-Linear Programming (MINLP). GDP (Raman and Grossmann, 1994), is a generalization of disjunctive convex programming in the sense that it also allows the use of logic propositions that are expressed in terms of Boolean variables. In order to take advantage of current mixed-integer nonlinear programming solvers (e.g. DICOPT (Viswanathan and Grossmann, 1990), SBB (Brooke et al., 1998), α-ECP (Westerlund and Pettersson, 1995), Bonmin (Bonami et al., 2008), FilMINT (Abhishek et al., 2006), BARON (Sahinidis, 1996), etc.), GDPs are often reformulated as MINLPs.&lt;br /&gt;
[[File:GDP Intro.jpg|none|thumb|523x523px|&amp;lt;ref&amp;gt;https://www.minlp.org/pdf/GBDEWOGrossmann.pdf&amp;lt;/ref&amp;gt;Generalized Disjunctive Programming Methods]]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
(Review of mixed-integer nonlinear and generalizied disjunctiv eprogramming methods in process systems engineering, ingacio E grossmann and francisco tresplacios)&lt;br /&gt;
&lt;br /&gt;
==== file:///Users/blerand/Documents/Cornell/SYSEN%205800%20-%20Computational%20Optimization/Assignments/Project/file.pdf ====&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
GDP is a programming method that applies disjunctive programming to MINLP problems. This method facilitates modeling discrete or continuous optimization problems by implementing algebraic constraints and logic expressions. The formulation of a GDP consists of Boolean and continuous variables and disjunctions and logic propositions. In the case of convex functions, GDPs can be reformulated using the big-M and the hull relaxation. Formulation methods also include logic based methods disjunctive branch and bound and decomposition. Once reformulated into a standard MINLP, standard MILNP solvers, such as DICOPT, SBB, α-ECP and BARON, can be used to determine optimal solutions. The GDP method has important applications that include the optimization of complex chemical reactions and process planning. &lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=File:GDP_Intro.jpg&amp;diff=1708</id>
		<title>File:GDP Intro.jpg</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=File:GDP_Intro.jpg&amp;diff=1708"/>
		<updated>2020-11-24T01:06:52Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;GDP Flow Chart&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1599</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1599"/>
		<updated>2020-11-22T13:32:00Z</updated>

		<summary type="html">&lt;p&gt;NRB: /* Theory */&lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[ Insert picture from google doc of GDP branching to Logic Based Methods and Reformulation MI(N)LP ]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
The general form of an MINLP model is as follows&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
where  f(x) and g(x) are twice differentiable functions, x are the continuous variables and y are the discrete variables. There are three main types of sub problems that arise from the MINLP: Continuous Relaxation, NLP subproblem for a fix yP and the feasibility problem.&lt;br /&gt;
&lt;br /&gt;
==== Continuous Relaxation ====&lt;br /&gt;
The sub problem of continuous relaxation takes the form of&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           x \in X\\&lt;br /&gt;
           y \in Y_R\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where &amp;lt;math&amp;gt;Y_R&amp;lt;/math&amp;gt; is the continuous relaxation of Y. Not that in this sub-problem all of the integer variables y are treated as continuous. This also returns a Lower Bound when it returns a feasible solution&lt;br /&gt;
&lt;br /&gt;
==== NLP Subproblem for a fixed yP ====&lt;br /&gt;
The subproblem for a fixed yP is shown in the form below&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y^p)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.    g(x,y^p) \leq 0\\&lt;br /&gt;
           x \in \Re^n\\&lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
In this sub problem you return an upper bound for the MINLP program when it has a feasible solution. So with said you can fix on of these integer variables and continuously relax the others in order to get a range of feasible values.&lt;br /&gt;
&lt;br /&gt;
&#039;&#039;&#039;Feasibility Problem&#039;&#039;&#039;&lt;br /&gt;
&lt;br /&gt;
When the fixed MINLP subproblem is not feasible the following feasibility problem is considered.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x,y)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x,y) \leq 0\\&lt;br /&gt;
           j \in J\\&lt;br /&gt;
           u \in \Re\\ &lt;br /&gt;
&lt;br /&gt;
\end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
Where J is the index set for inequalities and the feasibility problem attempts to minimize the infeasibility of the solution with the most violated constraints.&lt;br /&gt;
&lt;br /&gt;
==== GDP ====&lt;br /&gt;
Generalized Disjunctive Programming provides a high level framework for solving the mixed non-linear integer programs. By provide a methodology for converting the dijunctive problems into a MINLP the problem becomes simplified and easier to solve using current processing and algorithmic capabilities. There a methodologies that can not only solve this both Convex and Non-Convex Problems. A Convex GDP is when both f(x) and g(x) are convex functions. Which is defined as a graph where any line segment that passes through any 2 points of the plot will always be greater than the plot itself. This allows for simple relaxations/approximations to occur which will create a faster solving methodology.&lt;br /&gt;
&lt;br /&gt;
(Review of mixed-integer nonlinear and generalizied disjunctiv eprogramming methods in process systems engineering, ingacio E grossmann and francisco tresplacios)&lt;br /&gt;
&lt;br /&gt;
==== file:///Users/blerand/Documents/Cornell/SYSEN%205800%20-%20Computational%20Optimization/Assignments/Project/file.pdf ====&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1525</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1525"/>
		<updated>2020-11-22T00:54:07Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[ Insert picture from google doc of GDP branching to Logic Based Methods and Reformulation MI(N)LP ]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
==== Solvers: ====&lt;br /&gt;
&lt;br /&gt;
* DICOPT&lt;br /&gt;
* AAOA&lt;br /&gt;
* BARON&lt;br /&gt;
* Couenne&lt;br /&gt;
* Partial list taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1523</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1523"/>
		<updated>2020-11-22T00:52:43Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[ Insert picture from google doc of GDP branching to Logic Based Methods and Reformulation MI(N)LP ]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers (list them here) to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
GDP formulations are useful for real-world applications where multiple branches are available when making decisions. Solving the GDP in these instances will allow the user to calculate which decisions should be made at each branching point in order to get the optimal solution. This disjunctive formulation is common in complex chemical reactions and production planning.&lt;br /&gt;
[[File:Process network example.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|none|thumb|600x600px|Figure 1: Process Network. Each decision point represents another disjunctive set.]]&lt;br /&gt;
The process network depicted in the figure above depicts multiple decisions that could be made to all end up at the goal (B) in a chemical reaction. This problem is able to be formulated into a GDP in order to figure out which route should be taken in order to maximize the profit. &lt;br /&gt;
[[File:GDP numeric example 1.png|none|thumb|600x600px|Figure 2: A more complex process network.]]&lt;br /&gt;
This same idea can be scaled to larger problems with more complex branching. Figure 2 illustrates a larger process network and all of the different decision points. This problem is able to be formulated into a GDP so that the most optimal route can be calculated to take through the network.&lt;br /&gt;
&lt;br /&gt;
Figures taken from: http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf &lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=File:Process_network_example.png&amp;diff=1521</id>
		<title>File:Process network example.png</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=File:Process_network_example.png&amp;diff=1521"/>
		<updated>2020-11-22T00:48:29Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1519</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1519"/>
		<updated>2020-11-22T00:27:24Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[ Insert picture from google doc of GDP branching to Logic Based Methods and Reformulation MI(N)LP ]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers (list them here) to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 1.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1518</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1518"/>
		<updated>2020-11-22T00:26:42Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[ Insert picture from google doc of GDP branching to Logic Based Methods and Reformulation MI(N)LP ]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers (list them here) to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt;&lt;br /&gt;
&lt;br /&gt;
[[index.php%3Ftitle=File:GDP_numeric_example_1.png|alt=|frameless|600x600px]][[index.php%3Ftitle=File:GDP_numeric_example_2.png|alt=|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1494</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1494"/>
		<updated>2020-11-21T21:39:41Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
[ Insert picture from google doc of GDP branching to Logic Based Methods and Reformulation MI(N)LP ]&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers (list them here) to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
The following example was taken from: &amp;lt;nowiki&amp;gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&amp;lt;/nowiki&amp;gt; &lt;br /&gt;
[[File:GDP numeric example 1.png|left|frameless|600x600px|Figure 1: Placeholder http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf]]&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 2.png|frameless|600x600px]]&lt;br /&gt;
[[File:GDP numeric example 3.png|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 4.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|661x661px]]&lt;br /&gt;
&lt;br /&gt;
[[File:GDP numeric example 5.png|alt=http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf|frameless|600x600px]]&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_5.png&amp;diff=1493</id>
		<title>File:GDP numeric example 5.png</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_5.png&amp;diff=1493"/>
		<updated>2020-11-21T21:39:06Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_4.png&amp;diff=1492</id>
		<title>File:GDP numeric example 4.png</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_4.png&amp;diff=1492"/>
		<updated>2020-11-21T21:38:15Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_3.png&amp;diff=1491</id>
		<title>File:GDP numeric example 3.png</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_3.png&amp;diff=1491"/>
		<updated>2020-11-21T21:37:22Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_2.png&amp;diff=1490</id>
		<title>File:GDP numeric example 2.png</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_2.png&amp;diff=1490"/>
		<updated>2020-11-21T21:35:53Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_1.png&amp;diff=1489</id>
		<title>File:GDP numeric example 1.png</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=File:GDP_numeric_example_1.png&amp;diff=1489"/>
		<updated>2020-11-21T21:33:35Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;http://egon.cheme.cmu.edu/Papers/IMAGrossmannRuiz.pdf&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1486</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1486"/>
		<updated>2020-11-21T21:23:31Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
            r_{ki}(x) \leq M^{ki}(1-y_{ki})\quad k \in K,i \in D_k\\ &lt;br /&gt;
&lt;br /&gt;
       \sum_{i \in D_k} y_{ki} = 1\quad k \in K\\&lt;br /&gt;
       Hy \geq h\\&lt;br /&gt;
       x^{lo} \leq x \leq x^{up}\\&lt;br /&gt;
       x \in \Re^n\\&lt;br /&gt;
       &lt;br /&gt;
       y_{ki} \in {0,1} \quad k \in K, i \in D_k \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
&lt;br /&gt;
Notice that the boolean term from the original GDP has been converted into a numerical {0,1}. The logic relations have also been converted into linear integer constraints (Hy).&lt;br /&gt;
&lt;br /&gt;
(&amp;lt;nowiki&amp;gt;https://kilthub.cmu.edu/articles/journal_contribution/Improved_Big-M_Reformulation_for_Generalized_Disjunctive_Programs/6467063&amp;lt;/nowiki&amp;gt;)&lt;br /&gt;
&lt;br /&gt;
This MINLP reformulation can now be used in well-known solvers (list them here) to calculate a solution.  &lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1478</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1478"/>
		<updated>2020-11-21T20:55:47Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) \leq 0\\&lt;br /&gt;
rki(x) \leg M^ki(1-yki) &lt;br /&gt;
&lt;br /&gt;
       m_i\ge0,\quad \forall i \in I\\&lt;br /&gt;
       &lt;br /&gt;
       y_j\in {0,1},\quad \forall j \in J \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1477</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1477"/>
		<updated>2020-11-21T20:50:13Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
&amp;lt;math&amp;gt;\begin{align} \min z=f(x)\\&lt;br /&gt;
&lt;br /&gt;
       s.t.g(x) &amp;lt;= 0\\&lt;br /&gt;
&lt;br /&gt;
       m_i\ge0,\quad \forall i \in I\\&lt;br /&gt;
       &lt;br /&gt;
       y_j\in {0,1},\quad \forall j \in J \end{align}&amp;lt;/math&amp;gt;&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
	<entry>
		<id>https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1475</id>
		<title>Convex generalized disjunctive programming (GDP)</title>
		<link rel="alternate" type="text/html" href="https://optimization.cbe.cornell.edu/index.php?title=Convex_generalized_disjunctive_programming_(GDP)&amp;diff=1475"/>
		<updated>2020-11-21T20:33:34Z</updated>

		<summary type="html">&lt;p&gt;NRB: &lt;/p&gt;
&lt;hr /&gt;
&lt;div&gt;Edited By: Nicholas Schafhauser, Blerand Qeriqi, Ryan Cuppernull&lt;br /&gt;
&lt;br /&gt;
== Introduction ==&lt;br /&gt;
&lt;br /&gt;
== Theory ==&lt;br /&gt;
&lt;br /&gt;
== Methodology ==&lt;br /&gt;
The two most common ways of reformulating a GDP problem into an MINLP are through Big-M (BM) and Hull Reformulation (HR). BM is the simpler of the two, while HR results in tighter relaxation (smaller feasible region) and faster solution times. (https://kilthub.cmu.edu/articles/A_hierarchy_of_relaxations_for_nonlinear_convex_generalized_disjunctive_programming/6466535)&lt;br /&gt;
&lt;br /&gt;
Below is an example of the reformulation of the GDP problem from the Theory section reformulated into an MINLP by using the Big-M method.&lt;br /&gt;
&lt;br /&gt;
== Numerical Example ==&lt;br /&gt;
&lt;br /&gt;
== Applications ==&lt;br /&gt;
&lt;br /&gt;
== Conclusion ==&lt;br /&gt;
&lt;br /&gt;
== References ==&lt;/div&gt;</summary>
		<author><name>NRB</name></author>
	</entry>
</feed>