From 0c77c9b63ccf60281480b4dcf55af1fdbabe14ef Mon Sep 17 00:00:00 2001 From: ZedongPeng Date: Mon, 19 Aug 2024 16:38:50 -0400 Subject: [PATCH 01/15] update HDA GDP model --- gdplib/hda/HDA_GDP_gdpopt.py | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/gdplib/hda/HDA_GDP_gdpopt.py b/gdplib/hda/HDA_GDP_gdpopt.py index fba558a..59a4331 100644 --- a/gdplib/hda/HDA_GDP_gdpopt.py +++ b/gdplib/hda/HDA_GDP_gdpopt.py @@ -39,7 +39,7 @@ def HDA_model(): compressor coefficient compeff : float compressor efficiency - gam : float + cp_cv_ratio : float ratio of cp to cv abseff : float absorber tray efficiency @@ -150,7 +150,7 @@ def HDA_model(): m.alpha = Param(initialize=0.3665, doc="compressor coefficient") m.compeff = Param(initialize=0.750, doc="compressor efficiency") - m.gam = Param(initialize=1.300, doc="ratio of cp to cv") + m.cp_cv_ratio = Param(initialize=1.300, doc="ratio of cp to cv") m.abseff = Param(initialize=0.333, doc="absorber tray efficiency") m.disteff = Param(initialize=0.5000, doc="column tray efficiency") m.uflow = Param(initialize=50, doc="upper bound - flow logicals") @@ -1535,7 +1535,7 @@ def Compelec(_m, comp_): * m.f[stream] / 60.0 * (1.0 / m.compeff) - * (m.gam / (m.gam - 1.0)) + * (m.cp_cv_ratio / (m.cp_cv_ratio - 1.0)) for (comp1, stream) in m.icomp if comp_ == comp1 ) @@ -1547,7 +1547,7 @@ def Compelec(_m, comp_): def Ratio(_m, comp_): if comp == comp_: - return m.presrat[comp_] ** (m.gam / (m.gam - 1.0)) == sum( + return m.presrat[comp_] ** (m.cp_cv_ratio / (m.cp_cv_ratio - 1.0)) == sum( m.p[stream] for (comp1, stream) in m.ocomp if comp_ == comp1 ) / sum(m.p[stream] for (comp1, stream) in m.icomp if comp1 == comp_) return Constraint.Skip @@ -2642,11 +2642,11 @@ def Valcmb(_m, valve, compon): def Valt(_m, valve): return sum( - m.t[stream] / (m.p[stream] ** ((m.gam - 1.0) / m.gam)) + m.t[stream] / (m.p[stream] ** ((m.cp_cv_ratio - 1.0) / m.cp_cv_ratio)) for (valv, stream) in m.oval if valv == valve ) == sum( - m.t[stream] / (m.p[stream] ** ((m.gam - 1.0) / m.gam)) + m.t[stream] / (m.p[stream] ** ((m.cp_cv_ratio - 1.0) / m.cp_cv_ratio)) for (valv, stream) in m.ival if valv == valve ) From 29c0ee5e9a3d300ec76284587fc1e54f94a1c562 Mon Sep 17 00:00:00 2001 From: ZedongPeng Date: Mon, 19 Aug 2024 16:41:19 -0400 Subject: [PATCH 02/15] black format --- gdplib/hda/HDA_GDP_gdpopt.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/gdplib/hda/HDA_GDP_gdpopt.py b/gdplib/hda/HDA_GDP_gdpopt.py index 59a4331..a34d6db 100644 --- a/gdplib/hda/HDA_GDP_gdpopt.py +++ b/gdplib/hda/HDA_GDP_gdpopt.py @@ -1547,9 +1547,13 @@ def Compelec(_m, comp_): def Ratio(_m, comp_): if comp == comp_: - return m.presrat[comp_] ** (m.cp_cv_ratio / (m.cp_cv_ratio - 1.0)) == sum( + return m.presrat[comp_] ** ( + m.cp_cv_ratio / (m.cp_cv_ratio - 1.0) + ) == sum( m.p[stream] for (comp1, stream) in m.ocomp if comp_ == comp1 - ) / sum(m.p[stream] for (comp1, stream) in m.icomp if comp1 == comp_) + ) / sum( + m.p[stream] for (comp1, stream) in m.icomp if comp1 == comp_ + ) return Constraint.Skip b.ratio = Constraint( From 8ffbcfaeedff78db7630ef94579f0dc3c4e102e2 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 10:15:31 -0400 Subject: [PATCH 03/15] Fixed the ex1_linan_2023 directory and Fixed the references, add init in linan --- gdplib/{ ex1_linan_2023 => ex1_linan_2023}/ ex1_linan_2023.py | 0 gdplib/{ ex1_linan_2023 => ex1_linan_2023}/README.md | 3 +++ gdplib/ex1_linan_2023/__init__.py | 3 +++ 3 files changed, 6 insertions(+) rename gdplib/{ ex1_linan_2023 => ex1_linan_2023}/ ex1_linan_2023.py (100%) rename gdplib/{ ex1_linan_2023 => ex1_linan_2023}/README.md (99%) create mode 100644 gdplib/ex1_linan_2023/__init__.py diff --git a/gdplib/ ex1_linan_2023/ ex1_linan_2023.py b/gdplib/ex1_linan_2023/ ex1_linan_2023.py similarity index 100% rename from gdplib/ ex1_linan_2023/ ex1_linan_2023.py rename to gdplib/ex1_linan_2023/ ex1_linan_2023.py diff --git a/gdplib/ ex1_linan_2023/README.md b/gdplib/ex1_linan_2023/README.md similarity index 99% rename from gdplib/ ex1_linan_2023/README.md rename to gdplib/ex1_linan_2023/README.md index 1802e16..d0e4468 100644 --- a/gdplib/ ex1_linan_2023/README.md +++ b/gdplib/ex1_linan_2023/README.md @@ -11,4 +11,7 @@ The objective function originates from Problem No. 6 of Gomez's paper, and Liñ ### References [1] Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 + + + [2] Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 diff --git a/gdplib/ex1_linan_2023/__init__.py b/gdplib/ex1_linan_2023/__init__.py new file mode 100644 index 0000000..8599367 --- /dev/null +++ b/gdplib/ex1_linan_2023/__init__.py @@ -0,0 +1,3 @@ +from .ex1_linan_2023 import build_model + +__all__ = ['build_model'] From 8c4317b6fdaf8bd79809b12542008462b2be9442 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 10:18:56 -0400 Subject: [PATCH 04/15] fixed __init__.py --- gdplib/__init__.py | 1 + gdplib/ex1_linan_2023/README.md | 2 -- gdplib/ex1_linan_2023/{ ex1_linan_2023.py => ex1_linan_2023.py} | 0 3 files changed, 1 insertion(+), 2 deletions(-) rename gdplib/ex1_linan_2023/{ ex1_linan_2023.py => ex1_linan_2023.py} (100%) diff --git a/gdplib/__init__.py b/gdplib/__init__.py index 0d6fa2b..06c398e 100644 --- a/gdplib/__init__.py +++ b/gdplib/__init__.py @@ -13,3 +13,4 @@ import gdplib.disease_model import gdplib.med_term_purchasing import gdplib.syngas +import gdplib.ex1_linan_2023 \ No newline at end of file diff --git a/gdplib/ex1_linan_2023/README.md b/gdplib/ex1_linan_2023/README.md index d0e4468..354a7b1 100644 --- a/gdplib/ex1_linan_2023/README.md +++ b/gdplib/ex1_linan_2023/README.md @@ -12,6 +12,4 @@ The objective function originates from Problem No. 6 of Gomez's paper, and Liñ [1] Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 - - [2] Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 diff --git a/gdplib/ex1_linan_2023/ ex1_linan_2023.py b/gdplib/ex1_linan_2023/ex1_linan_2023.py similarity index 100% rename from gdplib/ex1_linan_2023/ ex1_linan_2023.py rename to gdplib/ex1_linan_2023/ex1_linan_2023.py From dcced4122cd7a274dd787e7148269bd4be87d8db Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 10:25:37 -0400 Subject: [PATCH 05/15] trying to separate the README.md references line --- gdplib/ex1_linan_2023/README.md | 4 ++++ 1 file changed, 4 insertions(+) diff --git a/gdplib/ex1_linan_2023/README.md b/gdplib/ex1_linan_2023/README.md index 354a7b1..c8eed02 100644 --- a/gdplib/ex1_linan_2023/README.md +++ b/gdplib/ex1_linan_2023/README.md @@ -12,4 +12,8 @@ The objective function originates from Problem No. 6 of Gomez's paper, and Liñ [1] Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 +--- + [2] Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 + +--- From 4deb2c3bba3ebef52d35ae8ef06a577cbcd94aaa Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 10:42:05 -0400 Subject: [PATCH 06/15] Update README.md references and fix ex1_linan_2023 documentation --- gdplib/ex1_linan_2023/README.md | 7 ++----- gdplib/ex1_linan_2023/ex1_linan_2023.py | 3 ++- 2 files changed, 4 insertions(+), 6 deletions(-) diff --git a/gdplib/ex1_linan_2023/README.md b/gdplib/ex1_linan_2023/README.md index c8eed02..b071c04 100644 --- a/gdplib/ex1_linan_2023/README.md +++ b/gdplib/ex1_linan_2023/README.md @@ -10,10 +10,7 @@ The objective function originates from Problem No. 6 of Gomez's paper, and Liñ ### References -[1] Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 - ---- - -[2] Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 +1. Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 +2. Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 --- diff --git a/gdplib/ex1_linan_2023/ex1_linan_2023.py b/gdplib/ex1_linan_2023/ex1_linan_2023.py index b48a31b..ad0e439 100644 --- a/gdplib/ex1_linan_2023/ex1_linan_2023.py +++ b/gdplib/ex1_linan_2023/ex1_linan_2023.py @@ -1,7 +1,7 @@ """ ex1_linan_2023.py: Toy problem from Liñán and Ricardez-Sandoval (2023) [1] -TThe ex1_linan.py file is a simple optimization problem that involves two Boolean variables, two continuous variables, and a nonlinear objective function. +The ex1_linan.py file is a simple optimization problem that involves two Boolean variables, two continuous variables, and a nonlinear objective function. The problem is formulated as a Generalized Disjunctive Programming (GDP) model. The Boolean variables are associated with disjuncts that define the feasible regions of the continuous variables. The problem includes logical constraints that ensure that only one Boolean variable is true at a time. @@ -12,6 +12,7 @@ References ---------- [1] Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 + [2] Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 """ From 1e2e07a539f350eb21aa3087d5a9e807f73df3ca Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 10:52:01 -0400 Subject: [PATCH 07/15] add small batch init.py --- gdplib/small_batch/__init__.py | 3 +++ 1 file changed, 3 insertions(+) create mode 100644 gdplib/small_batch/__init__.py diff --git a/gdplib/small_batch/__init__.py b/gdplib/small_batch/__init__.py new file mode 100644 index 0000000..0a6b1ff --- /dev/null +++ b/gdplib/small_batch/__init__.py @@ -0,0 +1,3 @@ +from .gdp_small_batch import build_model + +__all__ = ['build_model'] From ddf3a2853888ee1c6873490c14e1d1b04be9f0ed Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 10:58:08 -0400 Subject: [PATCH 08/15] change the function def build_small_batch into build_model --- gdplib/small_batch/gdp_small_batch.py | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/gdplib/small_batch/gdp_small_batch.py b/gdplib/small_batch/gdp_small_batch.py index b7d2b48..afc5ef3 100644 --- a/gdplib/small_batch/gdp_small_batch.py +++ b/gdplib/small_batch/gdp_small_batch.py @@ -20,7 +20,7 @@ from pyomo.opt.base.solvers import SolverFactory -def build_small_batch(): +def build_model(): """ Build the GDP model for the small batch problem. @@ -32,6 +32,7 @@ def build_small_batch(): References ---------- [1] Kocis, G. R.; Grossmann, I. E. (1988). Global Optimization of Nonconvex Mixed-Integer Nonlinear Programming (MINLP) Problems in Process Synthesis. Ind. Eng. Chem. Res., 27(8), 1407-1421. https://doi.org/10.1021/ie00080a013 + [2] Ovalle, D., Liñán, D. A., Lee, A., Gómez, J. M., Ricardez-Sandoval, L., Grossmann, I. E., & Neira, D. E. B. (2024). Logic-Based Discrete-Steepest Descent: A Solution Method for Process Synthesis Generalized Disjunctive Programs. arXiv preprint arXiv:2405.05358. https://doi.org/10.48550/arXiv.2405.05358 """ NK = 3 @@ -426,7 +427,7 @@ def obj_rule(m): if __name__ == "__main__": - m = build_small_batch() + m = build_model() pyo.TransformationFactory("core.logical_to_linear").apply_to(m) pyo.TransformationFactory("gdp.bigm").apply_to(m) pyo.SolverFactory("gams").solve( From 72245e403a9f5d878a018834e8e0d8b7b7f2b6a1 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 10:58:24 -0400 Subject: [PATCH 09/15] Add small_batch module to gdplib --- gdplib/__init__.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdplib/__init__.py b/gdplib/__init__.py index 06c398e..a43a065 100644 --- a/gdplib/__init__.py +++ b/gdplib/__init__.py @@ -13,4 +13,5 @@ import gdplib.disease_model import gdplib.med_term_purchasing import gdplib.syngas -import gdplib.ex1_linan_2023 \ No newline at end of file +import gdplib.ex1_linan_2023 +import gdplib.small_batch \ No newline at end of file From bf1f19a05f78c3a1a33fa59f1f28e522f39c04ed Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 11:24:05 -0400 Subject: [PATCH 10/15] added cstr path way init py --- gdplib/__init__.py | 3 ++- gdplib/cstr/__init__.py | 3 +++ 2 files changed, 5 insertions(+), 1 deletion(-) create mode 100644 gdplib/cstr/__init__.py diff --git a/gdplib/__init__.py b/gdplib/__init__.py index a43a065..a49a6ab 100644 --- a/gdplib/__init__.py +++ b/gdplib/__init__.py @@ -14,4 +14,5 @@ import gdplib.med_term_purchasing import gdplib.syngas import gdplib.ex1_linan_2023 -import gdplib.small_batch \ No newline at end of file +import gdplib.small_batch +import gdplib.cstr \ No newline at end of file diff --git a/gdplib/cstr/__init__.py b/gdplib/cstr/__init__.py new file mode 100644 index 0000000..cf26769 --- /dev/null +++ b/gdplib/cstr/__init__.py @@ -0,0 +1,3 @@ +from .gdp_reactor import build_model + +__all__ = ['build_model'] From 079964dd0750e0146003403a4427c90629c29d6f Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 11:24:26 -0400 Subject: [PATCH 11/15] change build_cstrs into build_model --- gdplib/cstr/gdp_reactor.py | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/gdplib/cstr/gdp_reactor.py b/gdplib/cstr/gdp_reactor.py index b357384..a405acf 100644 --- a/gdplib/cstr/gdp_reactor.py +++ b/gdplib/cstr/gdp_reactor.py @@ -17,7 +17,7 @@ from pyomo.opt.base.solvers import SolverFactory -def build_cstrs(NT: int = 5) -> pyo.ConcreteModel(): +def build_model(NT: int = 5) -> pyo.ConcreteModel(): """ Build the CSTR superstructure model of size NT. NT is the number of reactors in series. @@ -915,7 +915,7 @@ def obj_rule(m): if __name__ == "__main__": - m = build_cstrs() + m = build_model() pyo.TransformationFactory("core.logical_to_linear").apply_to(m) pyo.TransformationFactory("gdp.bigm").apply_to(m) pyo.SolverFactory("gams").solve( From bdd85d0bf1974d6de31deb1164826d42236d62f7 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 11:25:42 -0400 Subject: [PATCH 12/15] reformed the README.md --- gdplib/ex1_linan_2023/README.md | 8 +++++--- gdplib/small_batch/README.md | 8 ++++---- 2 files changed, 9 insertions(+), 7 deletions(-) diff --git a/gdplib/ex1_linan_2023/README.md b/gdplib/ex1_linan_2023/README.md index b071c04..b290964 100644 --- a/gdplib/ex1_linan_2023/README.md +++ b/gdplib/ex1_linan_2023/README.md @@ -4,13 +4,15 @@ The Example 1 Problem of Liñán (2023) is a simple optimization problem that in The Boolean variables are associated with disjuncts that define the feasible regions of the continuous variables. The problem also includes logical constraints that ensure that only one Boolean variable is true at a time. Additionally, there are two disjunctions, one for each Boolean variable, where only one disjunct in each disjunction must be true. A specific logical constraint also enforces that `Y1[3]` must be false, making this particular disjunct infeasible. -The objective function is -0.9995999999999999 when the continuous variables are alpha = 0 (`Y1[2]=True`) and beta=-0.7 (`Y2[3]=True`). +The objective function is `-0.9995999999999999` when the continuous variables are alpha = 0 (`Y1[2]=True `) and beta=-0.7 (`Y2[3]=True`). The objective function originates from Problem No. 6 of Gomez's paper, and Liñán introduced logical propositions, logical disjunctions, and the following equations as constraints. ### References -1. Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 -2. Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 +> [1] Liñán, D. A., & Ricardez-Sandoval, L. A. (2023). A Benders decomposition framework for the optimization of disjunctive superstructures with ordered discrete decisions. AIChE Journal, 69(5), e18008. https://doi.org/10.1002/aic.18008 +> +> [2] Gomez, S., & Levy, A. V. (1982). The tunnelling method for solving the constrained global optimization problem with several non-connected feasible regions. In Numerical Analysis: Proceedings of the Third IIMAS Workshop Held at Cocoyoc, Mexico, January 1981 (pp. 34-47). Springer Berlin Heidelberg. https://doi.org/10.1007/BFb0092958 + --- diff --git a/gdplib/small_batch/README.md b/gdplib/small_batch/README.md index 837d76e..8ebc750 100644 --- a/gdplib/small_batch/README.md +++ b/gdplib/small_batch/README.md @@ -1,4 +1,4 @@ -## gdp_small_batch.py +## Small Batch Scheduling Problem The gdp_small_batch.py module contains the GDP model for the small batch problem based on the Kocis and Grossmann (1988) paper. @@ -10,6 +10,6 @@ The solution is 167427.65711. ### References -[1] Kocis, G. R.; Grossmann, I. E. Global Optimization of Nonconvex Mixed-Integer Nonlinear Programming (MINLP) Problems in Process Synthesis. Ind. Eng. Chem. Res. 1988, 27 (8), 1407-1421. https://doi.org/10.1021/ie00080a013 - -[2] Ovalle, D., Liñán, D. A., Lee, A., Gómez, J. M., Ricardez-Sandoval, L., Grossmann, I. E., & Bernal Neira, D. E. (2024). Logic-Based Discrete-Steepest Descent: A Solution Method for Process Synthesis Generalized Disjunctive Programs. arXiv preprint arXiv:2405.05358. https://doi.org/10.48550/arXiv.2405.05358 +> [1] Kocis, G. R.; Grossmann, I. E. Global Optimization of Nonconvex Mixed-Integer Nonlinear Programming (MINLP) Problems in Process Synthesis. Ind. Eng. Chem. Res. 1988, 27 (8), 1407-1421. https://doi.org/10.1021/ie00080a013 +> +> [2] Ovalle, D., Liñán, D. A., Lee, A., Gómez, J. M., Ricardez-Sandoval, L., Grossmann, I. E., & Bernal Neira, D. E. (2024). Logic-Based Discrete-Steepest Descent: A Solution Method for Process Synthesis Generalized Disjunctive Programs. arXiv preprint arXiv:2405.05358. https://doi.org/10.48550/arXiv.2405.05358 From 40f8ffea1ea857c28f6498a1688b768c24c05934 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 11:58:05 -0400 Subject: [PATCH 13/15] black format on gdp_small_batch --- gdplib/small_batch/gdp_small_batch.py | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/gdplib/small_batch/gdp_small_batch.py b/gdplib/small_batch/gdp_small_batch.py index afc5ef3..e2d434d 100644 --- a/gdplib/small_batch/gdp_small_batch.py +++ b/gdplib/small_batch/gdp_small_batch.py @@ -7,6 +7,7 @@ References ---------- [1] Kocis, G. R.; Grossmann, I. E. Global Optimization of Nonconvex Mixed-Integer Nonlinear Programming (MINLP) Problems in Process Synthesis. Ind. Eng. Chem. Res. 1988, 27 (8), 1407-1421. https://doi.org/10.1021/ie00080a013 + [2] Ovalle, D., Liñán, D. A., Lee, A., Gómez, J. M., Ricardez-Sandoval, L., Grossmann, I. E., & Bernal Neira, D. E. (2024). Logic-Based Discrete-Steepest Descent: A Solution Method for Process Synthesis Generalized Disjunctive Programs. arXiv preprint arXiv:2405.05358. https://doi.org/10.48550/arXiv.2405.05358 """ @@ -32,7 +33,7 @@ def build_model(): References ---------- [1] Kocis, G. R.; Grossmann, I. E. (1988). Global Optimization of Nonconvex Mixed-Integer Nonlinear Programming (MINLP) Problems in Process Synthesis. Ind. Eng. Chem. Res., 27(8), 1407-1421. https://doi.org/10.1021/ie00080a013 - + [2] Ovalle, D., Liñán, D. A., Lee, A., Gómez, J. M., Ricardez-Sandoval, L., Grossmann, I. E., & Neira, D. E. B. (2024). Logic-Based Discrete-Steepest Descent: A Solution Method for Process Synthesis Generalized Disjunctive Programs. arXiv preprint arXiv:2405.05358. https://doi.org/10.48550/arXiv.2405.05358 """ NK = 3 From d106403572fde527ae2dba112147f53ebd214070 Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 13:22:45 -0400 Subject: [PATCH 14/15] gdp_small_batch.py description renew --- gdplib/small_batch/gdp_small_batch.py | 1 + 1 file changed, 1 insertion(+) diff --git a/gdplib/small_batch/gdp_small_batch.py b/gdplib/small_batch/gdp_small_batch.py index e2d434d..4b53191 100644 --- a/gdplib/small_batch/gdp_small_batch.py +++ b/gdplib/small_batch/gdp_small_batch.py @@ -9,6 +9,7 @@ [1] Kocis, G. R.; Grossmann, I. E. Global Optimization of Nonconvex Mixed-Integer Nonlinear Programming (MINLP) Problems in Process Synthesis. Ind. Eng. Chem. Res. 1988, 27 (8), 1407-1421. https://doi.org/10.1021/ie00080a013 [2] Ovalle, D., Liñán, D. A., Lee, A., Gómez, J. M., Ricardez-Sandoval, L., Grossmann, I. E., & Bernal Neira, D. E. (2024). Logic-Based Discrete-Steepest Descent: A Solution Method for Process Synthesis Generalized Disjunctive Programs. arXiv preprint arXiv:2405.05358. https://doi.org/10.48550/arXiv.2405.05358 + """ import os From eaa872e58c8ce1d89a9dd6ba926f69c48270cacc Mon Sep 17 00:00:00 2001 From: Albert Lee Date: Tue, 20 Aug 2024 13:24:27 -0400 Subject: [PATCH 15/15] black format init.py --- gdplib/__init__.py | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/gdplib/__init__.py b/gdplib/__init__.py index a49a6ab..c45c052 100644 --- a/gdplib/__init__.py +++ b/gdplib/__init__.py @@ -15,4 +15,4 @@ import gdplib.syngas import gdplib.ex1_linan_2023 import gdplib.small_batch -import gdplib.cstr \ No newline at end of file +import gdplib.cstr