From 7e85ab1fec2754e33179f927348f68e07245521f Mon Sep 17 00:00:00 2001 From: John Siirola Date: Fri, 29 May 2026 13:13:57 -0600 Subject: [PATCH 1/4] Remove references to scipopt.org --- doc/OnlineDocs/explanation/solvers/mindtpy.rst | 3 +-- .../explanation/solvers/pyros/getting_started.rst | 4 ++-- doc/OnlineDocs/getting_started/solvers.rst | 6 ++---- 3 files changed, 5 insertions(+), 8 deletions(-) diff --git a/doc/OnlineDocs/explanation/solvers/mindtpy.rst b/doc/OnlineDocs/explanation/solvers/mindtpy.rst index 60a3f0a816a..4873e0a1c2e 100644 --- a/doc/OnlineDocs/explanation/solvers/mindtpy.rst +++ b/doc/OnlineDocs/explanation/solvers/mindtpy.rst @@ -255,10 +255,9 @@ Augmented Penalty refers to the introduction of (non-negative) slack variables o Global Outer-Approximation ^^^^^^^^^^^^^^^^^^^^^^^^^^ -Apart from the decomposition methods for convex MINLP problems [`Kronqvist et al., 2019`_], MindtPy provides an implementation of Global Outer Approximation (GOA) as described in [`Kesavan & Allgor, 2004`_], to provide optimality guaranteed for nonconvex MINLP problems. Here, the validity of the Mixed-integer Linear Programming relaxation of the original problem is guaranteed via the usage of Generalized McCormick envelopes, computed using the :ref:`interface to the MC++ package `. The NLP subproblems, in this case, need to be solved to global optimality, which can be achieved through global NLP solvers such as `BARON`_ or `SCIP`_. +Apart from the decomposition methods for convex MINLP problems [`Kronqvist et al., 2019`_], MindtPy provides an implementation of Global Outer Approximation (GOA) as described in [`Kesavan & Allgor, 2004`_], to provide optimality guaranteed for nonconvex MINLP problems. Here, the validity of the Mixed-integer Linear Programming relaxation of the original problem is guaranteed via the usage of Generalized McCormick envelopes, computed using the :ref:`interface to the MC++ package `. The NLP subproblems, in this case, need to be solved to global optimality, which can be achieved through global NLP solvers such as `BARON`_ or SCIP. .. _BARON: https://minlp.com/baron-solver -.. _SCIP: https://www.scipopt.org/ Convergence diff --git a/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst b/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst index fc7dc568260..e22298c4bcf 100644 --- a/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst +++ b/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst @@ -21,7 +21,7 @@ and (at least) one global NLP solver (e.g., `BARON `_, `COUENNE `_, -`SCIP `_) +SCIP) installed and licensed on your system. PyROS can be installed as follows: @@ -60,7 +60,7 @@ PyROS can be installed as follows: `IPOPT `_, `BARON `_, or - `SCIP `_ + SCIP is not pre-installed and licensed on your system. diff --git a/doc/OnlineDocs/getting_started/solvers.rst b/doc/OnlineDocs/getting_started/solvers.rst index 8183905c093..3af0b95f0da 100644 --- a/doc/OnlineDocs/getting_started/solvers.rst +++ b/doc/OnlineDocs/getting_started/solvers.rst @@ -79,13 +79,11 @@ the license requirements for their desired solver. * - SCIP (Command-line) - N/A - ``conda install ‑c conda‑forge scip`` - - `License `__ - `Docs `__ + - (see SCIP project) * - SCIP (Python) - ``pip install pyscipopt`` - ``conda install ‑c conda‑forge pyscipopt`` - - `License `__ - `Docs `__ + - (see SCIP project) * - XPRESS - ``pip install xpress`` - ``conda install ‑c fico‑xpress xpress`` From 1641e138241c89ecb3a8c5dd41bb27783e548d1d Mon Sep 17 00:00:00 2001 From: John Siirola Date: Fri, 29 May 2026 13:40:09 -0600 Subject: [PATCH 2/4] Update URL for DOE paper; switch reference from bibliography for publications --- doc/OnlineDocs/explanation/analysis/doe/guide.rst | 3 ++- doc/OnlineDocs/explanation/analysis/doe/overview.rst | 3 ++- doc/OnlineDocs/reference/bibliography.rst | 8 ++++---- 3 files changed, 8 insertions(+), 6 deletions(-) diff --git a/doc/OnlineDocs/explanation/analysis/doe/guide.rst b/doc/OnlineDocs/explanation/analysis/doe/guide.rst index f7c593a00f6..2e29d09f2a5 100644 --- a/doc/OnlineDocs/explanation/analysis/doe/guide.rst +++ b/doc/OnlineDocs/explanation/analysis/doe/guide.rst @@ -16,7 +16,8 @@ MBDoE analysis. This is in line with the convention used in the parameter estima An example of the subclassed :class:`Experiment` object that builds and labels the model is shown in the next few sections. -This guide illustrates the use of Pyomo.DoE using a reaction kinetics example ([WD22]_). +This guide illustrates the use of Pyomo.DoE using a reaction kinetics +example ([PyomoDOE-paper]_). .. math:: :nowrap: diff --git a/doc/OnlineDocs/explanation/analysis/doe/overview.rst b/doc/OnlineDocs/explanation/analysis/doe/overview.rst index f108b05920c..1779e98b734 100644 --- a/doc/OnlineDocs/explanation/analysis/doe/overview.rst +++ b/doc/OnlineDocs/explanation/analysis/doe/overview.rst @@ -127,4 +127,5 @@ We can use the FIM or the covariance matrix to define the design criteria. A confidence ellipse is a geometric representation of the uncertainty in parameter estimates. It is derived from the covariance matrix :math:`\mathbf{V}`. -In order to solve problems of the above, Pyomo.DoE implements the 2-stage stochastic program. Please see [WD22]_ for details. \ No newline at end of file +In order to solve problems of the above, Pyomo.DoE implements the +2-stage stochastic program. Please see [PyomoDOE-paper]_ for details. diff --git a/doc/OnlineDocs/reference/bibliography.rst b/doc/OnlineDocs/reference/bibliography.rst index 2c98bac63d6..bafa85198da 100644 --- a/doc/OnlineDocs/reference/bibliography.rst +++ b/doc/OnlineDocs/reference/bibliography.rst @@ -39,6 +39,10 @@ These publications describe various Pyomo capabilities or subpackages: and algebraic equations", *Mathematical Programming Computation*, 10(2), 187-223. 2018. +.. [PyomoDOE-paper] Wang, Jialu, and Alexander W. Dowling. "Pyomo.DOE: An open‐source + package for model‐based design of experiments in Python", *AIChE Journal*, + 68(12), e17813. 2022. DOI `10.1002/aic.17813 `_ + .. [Parmest-paper] Katherine A. Klise, Bethany L. Nicholson, Andrea Staid, David L.Woodruff. "Parmest: Parameter Estimation Via Pyomo." *Computer Aided Chemical Engineering*, 47, 41-46. 2019. @@ -179,7 +183,3 @@ Bibliography .. [NW99] Nocedal, Jorge, and Stephen J. Wright, eds. Numerical optimization. New York, NY: Springer New York, 1999. - -.. [WD22] Wang, Jialu, and Alexander W. Dowling. "Pyomo.DOE: An open‐source - package for model‐based design of experiments in Python", *AIChE Journal*, - 68(12), e17813. 2022. DOI `10.1002/aic.17813Y `_ From 7f61da1ec63a5350aed5e81eae8f64dc9da742c8 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Fri, 29 May 2026 15:29:12 -0600 Subject: [PATCH 3/4] Update reference to the DoE paper --- doc/OnlineDocs/explanation/analysis/doe/doe.rst | 11 +++++------ 1 file changed, 5 insertions(+), 6 deletions(-) diff --git a/doc/OnlineDocs/explanation/analysis/doe/doe.rst b/doc/OnlineDocs/explanation/analysis/doe/doe.rst index 7cefb99e418..6d8ef5a435b 100644 --- a/doc/OnlineDocs/explanation/analysis/doe/doe.rst +++ b/doc/OnlineDocs/explanation/analysis/doe/doe.rst @@ -15,11 +15,10 @@ Significant improvements and extensions were contributed by **Dan Laky**, and `Process Optimization & Modeling for Minerals Sustainability (PrOMMiS) `_ project and the `University of Notre Dame `_. -If you use Pyomo.DoE, please cite: - -[Wang and Dowling, 2022] Wang, Jialu, and Alexander W. Dowling. -"Pyomo.DOE: An open‐source package for model‐based design of experiments in Python." -AIChE Journal 68.12 (2022): e17813. `https://doi.org/10.1002/aic.17813` +If you use Pyomo.DoE, please cite the [PyomoDOE-paper]_: + Wang, Jialu, and Alexander W. Dowling. "Pyomo.DOE: An open‐source + package for model‐based design of experiments in Python", *AIChE Journal*, + 68(12), e17813. 2022. DOI `10.1002/aic.17813 `_ Index of Pyomo.DoE documentation ^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^ @@ -32,4 +31,4 @@ Index of Pyomo.DoE documentation abstraction.rst objective.rst multexp.rst - uncertainty.rst \ No newline at end of file + uncertainty.rst From 4a52048bd6105853f9f5a00a455e82809e0e8de3 Mon Sep 17 00:00:00 2001 From: John Siirola Date: Fri, 29 May 2026 15:49:03 -0600 Subject: [PATCH 4/4] Restore link to SCIP, but only to top-level domain; exclude from the checker --- .github/workflows/test_branches.yml | 3 ++- .github/workflows/test_pr_and_main.yml | 3 ++- .github/workflows/url_check.yml | 3 ++- doc/OnlineDocs/explanation/solvers/mindtpy.rst | 4 +--- .../solvers/pyros/getting_started.rst | 18 +++++++++--------- doc/OnlineDocs/getting_started/solvers.rst | 4 ++-- 6 files changed, 18 insertions(+), 17 deletions(-) diff --git a/.github/workflows/test_branches.yml b/.github/workflows/test_branches.yml index 1d6b1da05dc..25acb5e5204 100644 --- a/.github/workflows/test_branches.yml +++ b/.github/workflows/test_branches.yml @@ -77,7 +77,8 @@ jobs: # Exclude: # - Jenkins because it's behind a firewall # - RTD because a magically-generated string triggers failures - exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html + # - scipopt.org as they perform "validation" on the webclient (which fails) + exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html,https://www.scipopt.org # Exclude: # - All gnu.org links because they consistently fail the checker # - All lpsolve.sourceforge.net links because SF appears to reject from GHA diff --git a/.github/workflows/test_pr_and_main.yml b/.github/workflows/test_pr_and_main.yml index c015b579a61..7349443c7ac 100644 --- a/.github/workflows/test_pr_and_main.yml +++ b/.github/workflows/test_pr_and_main.yml @@ -89,7 +89,8 @@ jobs: # Exclude: # - Jenkins because it's behind a firewall # - RTD because a magically-generated string triggers failures - exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html + # - scipopt.org as they perform "validation" on the webclient (which fails) + exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html,https://www.scipopt.org # Exclude: # - All gnu.org links because they consistently fail the checker # - All lpsolve.sourceforge.net links because SF appears to reject from GHA diff --git a/.github/workflows/url_check.yml b/.github/workflows/url_check.yml index daf7e74c7a8..de87596955c 100644 --- a/.github/workflows/url_check.yml +++ b/.github/workflows/url_check.yml @@ -40,7 +40,8 @@ jobs: # Exclude: # - Jenkins because it's behind a firewall # - RTD because a magically-generated string triggers failures - exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html + # - scipopt.org as they perform "validation" on the webclient (which fails) + exclude_urls: https://pyomo-jenkins.sandia.gov/,https://pyomo.readthedocs.io/en/%s/errors.html,https://www.scipopt.org # Exclude: # - All gnu.org links because they consistently fail the checker # - All lpsolve.sourceforge.net links because SF appears to reject from GHA diff --git a/doc/OnlineDocs/explanation/solvers/mindtpy.rst b/doc/OnlineDocs/explanation/solvers/mindtpy.rst index 4873e0a1c2e..99fc2b403c0 100644 --- a/doc/OnlineDocs/explanation/solvers/mindtpy.rst +++ b/doc/OnlineDocs/explanation/solvers/mindtpy.rst @@ -255,9 +255,7 @@ Augmented Penalty refers to the introduction of (non-negative) slack variables o Global Outer-Approximation ^^^^^^^^^^^^^^^^^^^^^^^^^^ -Apart from the decomposition methods for convex MINLP problems [`Kronqvist et al., 2019`_], MindtPy provides an implementation of Global Outer Approximation (GOA) as described in [`Kesavan & Allgor, 2004`_], to provide optimality guaranteed for nonconvex MINLP problems. Here, the validity of the Mixed-integer Linear Programming relaxation of the original problem is guaranteed via the usage of Generalized McCormick envelopes, computed using the :ref:`interface to the MC++ package `. The NLP subproblems, in this case, need to be solved to global optimality, which can be achieved through global NLP solvers such as `BARON`_ or SCIP. - -.. _BARON: https://minlp.com/baron-solver +Apart from the decomposition methods for convex MINLP problems [`Kronqvist et al., 2019`_], MindtPy provides an implementation of Global Outer Approximation (GOA) as described in [`Kesavan & Allgor, 2004`_], to provide optimality guaranteed for nonconvex MINLP problems. Here, the validity of the Mixed-integer Linear Programming relaxation of the original problem is guaranteed via the usage of Generalized McCormick envelopes, computed using the :ref:`interface to the MC++ package `. The NLP subproblems, in this case, need to be solved to global optimality, which can be achieved through global NLP solvers such as `BARON `__ or `SCIP `__. Convergence diff --git a/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst b/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst index e22298c4bcf..defe479b343 100644 --- a/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst +++ b/doc/OnlineDocs/explanation/solvers/pyros/getting_started.rst @@ -14,14 +14,14 @@ Installation In advance of using PyROS to solve robust optimization problems, you will need (at least) one local nonlinear programming (NLP) solver (e.g., -`CONOPT `_, -`IPOPT `_, -`Knitro `_) +`CONOPT `__, +`IPOPT `__, +`Knitro `__) and (at least) one global NLP solver (e.g., -`BARON `_, -`COUENNE `_, -SCIP) +`BARON `__, +`COUENNE `__, +`SCIP `__) installed and licensed on your system. PyROS can be installed as follows: @@ -57,10 +57,10 @@ PyROS can be installed as follows: Some tests involving deterministic NLP solvers may be skipped if - `IPOPT `_, - `BARON `_, + `IPOPT `__, + `BARON `__, or - SCIP + `SCIP `__ is not pre-installed and licensed on your system. diff --git a/doc/OnlineDocs/getting_started/solvers.rst b/doc/OnlineDocs/getting_started/solvers.rst index 3af0b95f0da..73602ba2eb3 100644 --- a/doc/OnlineDocs/getting_started/solvers.rst +++ b/doc/OnlineDocs/getting_started/solvers.rst @@ -79,11 +79,11 @@ the license requirements for their desired solver. * - SCIP (Command-line) - N/A - ``conda install ‑c conda‑forge scip`` - - (see SCIP project) + - (see `SCIP `__ project) * - SCIP (Python) - ``pip install pyscipopt`` - ``conda install ‑c conda‑forge pyscipopt`` - - (see SCIP project) + - (see `SCIP `__ project) * - XPRESS - ``pip install xpress`` - ``conda install ‑c fico‑xpress xpress``